ikiwiki/doc/plugins/autoindex/discussion.mdwn

85 lines
3.0 KiB
Markdown

Would it be possible to add an option to only generate the index files
for the html output and not place the markdown files in the wiki source?
> Or better still, add a mechanism for ikiwiki to hold transient source
> pages in memory and render them as if they existed, without actually
> writing them out, as [[JoeRayhawk]] suggests below? I think
> add_autofile would be the way to do this.
> I've added this to [[todo]] as [[todo/autoindex should use add__95__autofile]]
> and [[todo/transient_pages]]. --[[smcv]]
The reason being that I have a lot of directories which need to be autoindexed,
but I would prefer if the index files didn't clutter up my git repository.
even without that feature the plugin is a great help, thanks
------
If you just don't want to clutter your git repo, below it's a patch does the following:
* If you set autoindex_commit to 0 in your ikiwiki.setup file, we *do* place auto-generated markdown files in the **wiki source** but *not* in the **repo**
* If you set autoindex_commit to 1 (this is the default), auto-generated index files will be put in the repo provided you enabled rcs backend.
[[!toggle id="patch-for-autoindex_commit" text="patch for autoindex_commit"]]
[[!toggleable id="patch-for-autoindex_commit" text="""
<pre>
--- autoindex.pm.orig 2009-10-01 17:13:51.000000000 +0800
+++ autoindex.pm 2009-10-01 17:21:09.000000000 +0800
@@ -17,6 +17,13 @@
safe => 1,
rebuild => 0,
},
+ autoindex_commit => {
+ type => 'boolean',
+ default => 1,
+ description => 'commit generated autoindex pages into RCS',
+ safe => 0,
+ rebuild => 0,
+ },
}
sub genindex ($) {
@@ -25,7 +32,7 @@
my $template=template("autoindex.tmpl");
$template->param(page => $page);
writefile($file, $config{srcdir}, $template->output);
- if ($config{rcs}) {
+ if ($config{rcs} and $config{autoindex_commit}) {
IkiWiki::rcs_add($file);
}
}
@@ -94,13 +101,13 @@
}
if (@needed) {
- if ($config{rcs}) {
+ if ($config{rcs} and $config{autoindex_commit}) {
IkiWiki::disable_commit_hook();
}
foreach my $page (@needed) {
genindex($page);
}
- if ($config{rcs}) {
+ if ($config{rcs} and $config{autoindex_commit}) {
IkiWiki::rcs_commit_staged(
gettext("automatic index generation"),
undef, undef);
</pre>
"""]]
Warning: I guess this patch may work, but I *haven't tested it yet*. -- [[weakish]]
------
`autoindex_commit => 0` would be nice, but uncommited files are definitely not.
<pre>
remote: From /srv/git/test3
remote: 3047077..1df636c master -> origin/master
remote: error: Untracked working tree file 'test.mdwn' would be overwritten by merge. Aborting
remote: 'git pull --prune origin' failed: at /usr/share/perl5/IkiWiki/Plugin/git.pm line 201.
</pre>
It'd be nice if we were able to notice directories with no associated compilable markup files and compile a simple map directive straight to HTML without any intermediate markup file being involved at all. -- JoeRayhawk