template docu reorg
Remove wikitemplates page; fold its contents into templates page. Update all backlinks. Document new ability to put templates inside srcdir.master
parent
83703d2f4a
commit
7e79da7633
|
@ -10,7 +10,7 @@ If I have a <--#include virtual="foo" --> in some file, it gets stripped,
|
||||||
> Anyway, it makes sense for the htmlscrubber to strip server-side
|
> Anyway, it makes sense for the htmlscrubber to strip server-side
|
||||||
> includes because otherwise your wiki could be attacked
|
> includes because otherwise your wiki could be attacked
|
||||||
> by them being added to it. If you want to use both the htmlscrubber and
|
> by them being added to it. If you want to use both the htmlscrubber and
|
||||||
> SSI together, I'd suggest you modify the [[wikitemplates]]
|
> SSI together, I'd suggest you modify the [[templates]]
|
||||||
> and put the SSI on there.
|
> and put the SSI on there.
|
||||||
>
|
>
|
||||||
> Ie, `page.tmpl` has a
|
> Ie, `page.tmpl` has a
|
||||||
|
|
|
@ -36,7 +36,7 @@ If you want to keep it as one form, then perhaps using some javascript to disabl
|
||||||
> that allows modifying that form, but does not allow creating a separate
|
> that allows modifying that form, but does not allow creating a separate
|
||||||
> form. The best way to make it obvious how to use it currently is to just
|
> form. The best way to make it obvious how to use it currently is to just
|
||||||
> disable password auth, then it's nice and simple. :-) Javascript is an
|
> disable password auth, then it's nice and simple. :-) Javascript is an
|
||||||
> interesting idea. It's also possible to write a custom [[signin.tmpl wikitemplates]] that
|
> interesting idea. It's also possible to write a custom [[templates]] that
|
||||||
> is displayed instead of the regular signin form, and it should be
|
> is displayed instead of the regular signin form, and it should be
|
||||||
> possible to use that to manually lay it out better than FormBuilder
|
> possible to use that to manually lay it out better than FormBuilder
|
||||||
> manages with its automatic layout. --[[Joey]]
|
> manages with its automatic layout. --[[Joey]]
|
||||||
|
|
|
@ -72,7 +72,7 @@ you would care to syndicate.
|
||||||
|
|
||||||
Ikiwiki aims to produce
|
Ikiwiki aims to produce
|
||||||
[valid XHTML 1.0](http://validator.w3.org/check?url=referer). Ikiwiki
|
[valid XHTML 1.0](http://validator.w3.org/check?url=referer). Ikiwiki
|
||||||
generates html using [[templates|wikitemplates]], and uses [[css]], so you
|
generates html using [[templates]], and uses [[css]], so you
|
||||||
can change the look and layout of all pages in any way you would like.
|
can change the look and layout of all pages in any way you would like.
|
||||||
|
|
||||||
## [[Plugins]]
|
## [[Plugins]]
|
||||||
|
|
|
@ -4,7 +4,7 @@ ikiwiki, and this documentation wiki, are licensed under the terms of the
|
||||||
GNU [[GPL]], version 2 or later.
|
GNU [[GPL]], version 2 or later.
|
||||||
|
|
||||||
The parts of ikiwiki that become part of your own wiki (the [[basewiki]]
|
The parts of ikiwiki that become part of your own wiki (the [[basewiki]]
|
||||||
pages (but not the smilies) and the [[templates|wikitemplates]]) are licensed
|
pages (but not the smilies) and the [[templates]]) are licensed
|
||||||
as follows:
|
as follows:
|
||||||
|
|
||||||
> Redistribution and use in source and compiled forms, with or without
|
> Redistribution and use in source and compiled forms, with or without
|
||||||
|
|
|
@ -43,7 +43,7 @@ An example crontab:
|
||||||
|
|
||||||
# TEMPLATES
|
# TEMPLATES
|
||||||
|
|
||||||
This command uses two [[template|wikitemplates]] to generate
|
This command uses two [[templates]] to generate
|
||||||
the pages, `calendarmonth.tmpl` and `calendaryear.tmpl`.
|
the pages, `calendarmonth.tmpl` and `calendaryear.tmpl`.
|
||||||
|
|
||||||
# AUTHOR
|
# AUTHOR
|
||||||
|
|
|
@ -21,7 +21,7 @@ something like:
|
||||||
Details:
|
Details:
|
||||||
|
|
||||||
The template page can also contain [[!cpan HTML::Template]] directives,
|
The template page can also contain [[!cpan HTML::Template]] directives,
|
||||||
similar to other ikiwiki [[templates]]. Currently only one variable is
|
like other ikiwiki [[templates]]. Currently only one variable is
|
||||||
set: `<TMPL_VAR name>` is replaced with the name of the page being
|
set: `<TMPL_VAR name>` is replaced with the name of the page being
|
||||||
created.
|
created.
|
||||||
|
|
||||||
|
|
|
@ -1,17 +1,13 @@
|
||||||
The `pagetemplate` directive is supplied by the [[!iki plugins/pagetemplate desc=pagetemplate]] plugin.
|
The `pagetemplate` directive is supplied by the [[!iki plugins/pagetemplate desc=pagetemplate]] plugin.
|
||||||
|
|
||||||
This directive allows a page to be displayed using a different template than
|
This directive allows a page to be displayed using a different
|
||||||
the default `page.tmpl` template.
|
[[template|templates]] than the default `page.tmpl` template.
|
||||||
|
|
||||||
The page text is inserted into the template, so the template controls the
|
The page text is inserted into the template, so the template controls the
|
||||||
overall look and feel of the wiki page. This is in contrast to the
|
overall look and feel of the wiki page. This is in contrast to the
|
||||||
[[ikiwiki/directive/template]] directive, which allows inserting templates
|
[[ikiwiki/directive/template]] directive, which allows inserting templates
|
||||||
_into_ the body of a page.
|
_into_ the body of a page.
|
||||||
|
|
||||||
This directive can only reference templates that are already installed
|
|
||||||
by the system administrator, typically into the
|
|
||||||
`/usr/share/ikiwiki/templates` directory. Example:
|
|
||||||
|
|
||||||
\[[!pagetemplate template="my_fancy.tmpl"]]
|
\[[!pagetemplate template="my_fancy.tmpl"]]
|
||||||
|
|
||||||
[[!meta robots="noindex, follow"]]
|
[[!meta robots="noindex, follow"]]
|
||||||
|
|
|
@ -1,7 +1,11 @@
|
||||||
The `template` directive is supplied by the [[!iki plugins/template desc=template]] plugin.
|
The `template` directive is supplied by the [[!iki plugins/template desc=template]] plugin.
|
||||||
|
|
||||||
[[Templates]] are files that can be filled out and inserted into pages in the
|
The template directive allows wiki pages to be used as templates.
|
||||||
wiki, by using the template directive. The directive has an `id` parameter
|
These templates can be filled out and inserted into other pages in the
|
||||||
|
wiki using the directive. The [[templates]] page lists templates
|
||||||
|
that can be used with this directive.
|
||||||
|
|
||||||
|
The directive has an `id` parameter
|
||||||
that identifies the template to use. The remaining parameters are used to
|
that identifies the template to use. The remaining parameters are used to
|
||||||
fill out the template.
|
fill out the template.
|
||||||
|
|
||||||
|
|
|
@ -3,5 +3,5 @@
|
||||||
|
|
||||||
This plugin searches for [[SubPages|ikiwiki/subpage]] with a missing parent
|
This plugin searches for [[SubPages|ikiwiki/subpage]] with a missing parent
|
||||||
page, and generates the parent pages. The generated page content is
|
page, and generates the parent pages. The generated page content is
|
||||||
controlled by the `autoindex.tmpl` [[template|wikitemplates]], which by
|
controlled by the `autoindex.tmpl` [[template|templates]], which by
|
||||||
default, uses a [[map]] to list the SubPages.
|
default, uses a [[map]] to list the SubPages.
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
I'm wanting a [[map]] (with indentation levels) showing page _titles_
|
I'm wanting a [[map]] (with indentation levels) showing page _titles_
|
||||||
instead of page 'names'. As far as I can see, this is not an option with
|
instead of page 'names'. As far as I can see, this is not an option with
|
||||||
existing plugins - I can get a list of pages using [[inline]] and
|
existing plugins - I can get a list of pages using [[inline]] and
|
||||||
appropriate [[wikitemplates]], but that has no indentation and therefore
|
appropriate [[templates]], but that has no indentation and therefore
|
||||||
doesn't show structure well.
|
doesn't show structure well.
|
||||||
|
|
||||||
The quick way is to modify the map plugin to have a 'titles' option. The
|
The quick way is to modify the map plugin to have a 'titles' option. The
|
||||||
|
|
|
@ -3,8 +3,4 @@
|
||||||
|
|
||||||
This plugin provides the [[ikiwiki/directive/pagetemplate]]
|
This plugin provides the [[ikiwiki/directive/pagetemplate]]
|
||||||
[[ikiwiki/directive]], which allows a page to be displayed
|
[[ikiwiki/directive]], which allows a page to be displayed
|
||||||
using a different [[template|wikitemplates]] than the default.
|
using a different [[template|templates]] than the default.
|
||||||
|
|
||||||
This plugin can only use templates that are already installed in
|
|
||||||
`/usr/share/ikiwiki/templates` (or wherever ikiwiki is configured to look for
|
|
||||||
them). You can choose to use any .tmpl files in that directory.
|
|
||||||
|
|
|
@ -3,5 +3,5 @@
|
||||||
|
|
||||||
This plugin provides the [[ikiwiki/directive/template]] [[ikiwiki/directive]].
|
This plugin provides the [[ikiwiki/directive/template]] [[ikiwiki/directive]].
|
||||||
With this plugin, you can set up templates, and cause them to be filled out
|
With this plugin, you can set up templates, and cause them to be filled out
|
||||||
and inserted into pages in the wiki. It's documented and existing templates
|
and inserted into pages in the wiki. Existing templates are listed in the
|
||||||
are listed in the [[templates]] page.
|
[[templates]] page.
|
||||||
|
|
|
@ -297,7 +297,7 @@ value is ignored.
|
||||||
|
|
||||||
hook(type => "pagetemplate", id => "foo", call => \&pagetemplate);
|
hook(type => "pagetemplate", id => "foo", call => \&pagetemplate);
|
||||||
|
|
||||||
[[Templates|wikitemplates]] are filled out for many different things in
|
[[Templates]] are filled out for many different things in
|
||||||
ikiwiki, like generating a page, or part of a blog page, or an rss feed, or
|
ikiwiki, like generating a page, or part of a blog page, or an rss feed, or
|
||||||
a cgi. This hook allows modifying the variables available on those
|
a cgi. This hook allows modifying the variables available on those
|
||||||
templates. The function is passed named parameters. The "page" and
|
templates. The function is passed named parameters. The "page" and
|
||||||
|
@ -313,7 +313,7 @@ a new custom parameter to the template.
|
||||||
|
|
||||||
hook(type => "templatefile", id => "foo", call => \&templatefile);
|
hook(type => "templatefile", id => "foo", call => \&templatefile);
|
||||||
|
|
||||||
This hook allows plugins to change the [[template|wikitemplates]] that is
|
This hook allows plugins to change the [[template|templates]] that is
|
||||||
used for a page in the wiki. The hook is passed a "page" parameter, and
|
used for a page in the wiki. The hook is passed a "page" parameter, and
|
||||||
should return the name of the template file to use (relative to the
|
should return the name of the template file to use (relative to the
|
||||||
template directory), or undef if it doesn't want to change the default
|
template directory), or undef if it doesn't want to change the default
|
||||||
|
|
|
@ -1,17 +1,88 @@
|
||||||
[[!meta robots="noindex, follow"]]
|
[[Ikiwiki]] uses many templates for many purposes. By editing its templates,
|
||||||
[[!if test="enabled(template)"
|
you can fully customise this site.
|
||||||
then="This wiki has templates **enabled**."
|
|
||||||
else="This wiki has templates **disabled**."
|
|
||||||
]]
|
|
||||||
|
|
||||||
Templates are files that can be filled out and inserted into pages in the
|
[[!if test="enabled(template)" then="""
|
||||||
wiki.
|
## The template directive
|
||||||
|
|
||||||
|
The template directive allows wiki pages to be used as templates.
|
||||||
|
These templates can be filled out and inserted into other pages in the
|
||||||
|
wiki using the directive.
|
||||||
|
"""]]
|
||||||
[[!if test="enabled(template) and enabled(inline)" then="""
|
[[!if test="enabled(template) and enabled(inline)" then="""
|
||||||
|
|
||||||
These templates are available for use with the template directive.
|
|
||||||
|
|
||||||
[[!inline pages="templates/* and !*/discussion" feeds=no archive=yes
|
[[!inline pages="templates/* and !*/discussion" feeds=no archive=yes
|
||||||
sort=title template=titlepage
|
sort=title template=titlepage
|
||||||
rootpage=templates postformtext="Add a new template named:"]]
|
rootpage=templates postformtext="Add a new template named:"]]
|
||||||
"""]]
|
"""]]
|
||||||
|
|
||||||
|
[[!if test="enabled(edittemplate)" then="""
|
||||||
|
## The edittemplate directive
|
||||||
|
|
||||||
|
The edittemplate directive can be used to make new pages default to
|
||||||
|
containing text from a template, which can be filled as out the page is
|
||||||
|
edited.
|
||||||
|
"""]]
|
||||||
|
|
||||||
|
## Wiki templates
|
||||||
|
|
||||||
|
These templates are used to build the wiki. The aim is to keep almost all
|
||||||
|
html out of ikiwiki and in the templates.
|
||||||
|
|
||||||
|
* `page.tmpl` - Used for displaying all regular wiki pages.
|
||||||
|
* `misc.tmpl` - Generic template used for any page that doesn't
|
||||||
|
have a custom template.
|
||||||
|
* `editpage.tmpl` - Create/edit page.
|
||||||
|
* `change.tmpl` - Used to create a page describing a change made to the wiki.
|
||||||
|
* `passwordmail.tmpl` - Not a html template, this is used to
|
||||||
|
generate a mail with an url the user can use to reset their password.
|
||||||
|
* `rsspage.tmpl` - Used for generating rss feeds for [[blogs|blog]].
|
||||||
|
* `rssitem.tmpl` - Used for generating individual items on rss feeds.
|
||||||
|
* `atompage.tmpl` - Used for generating atom feeds for blogs.
|
||||||
|
* `atomitem.tmpl` - Used for generating individual items on atom feeds.
|
||||||
|
* `inlinepage.tmpl` - Used for adding a page inline in a blog
|
||||||
|
page.
|
||||||
|
* `archivepage.tmpl` - Used for listing a page in a blog archive page.
|
||||||
|
* `microblog.tmpl` - Used for showing a microblogging post inline.
|
||||||
|
* `blogpost.tmpl` - Used for a form to add a post to a blog (and a rss/atom links)
|
||||||
|
* `feedlink.tmpl` - Used to add rss/atom links if blogpost.tmpl is not used.
|
||||||
|
* `aggregatepost.tmpl` - Used by the [[plugins/aggregate]] plugin to create
|
||||||
|
a page for a post.
|
||||||
|
* `searchform.tmpl` - Used by the [[plugins/search]] plugin to add a search
|
||||||
|
form to wiki pages.
|
||||||
|
* `searchquery.tmpl` - This is an omega template, used by the
|
||||||
|
[[plugins/search]] plugin.
|
||||||
|
* `comment.tmpl` - This template is used to display a comment
|
||||||
|
by the [[plugins/comments]] plugin.
|
||||||
|
* `editcomment.tmpl` - This template is the comment post form for the
|
||||||
|
[[plugins/comments]] plugin.
|
||||||
|
* `commentmoderation.tmpl` - This template is used to produce the comment
|
||||||
|
moderation form.
|
||||||
|
* `recentchanges.tmpl` - This template is used for listing a change
|
||||||
|
on the RecentChanges page.
|
||||||
|
|
||||||
|
[[!if test="enabled(pagetemplate)" then="""
|
||||||
|
## The pagetemplate directive
|
||||||
|
|
||||||
|
The pagetemplate directive can allow individual pages to use a
|
||||||
|
different template than `page.tmpl`.
|
||||||
|
"""]]
|
||||||
|
|
||||||
|
## Template locations
|
||||||
|
|
||||||
|
Templates are located in `/usr/share/ikiwiki/templates` by default;
|
||||||
|
the `templatedir` setting can be used to make another directory be
|
||||||
|
searched first. Customized templates can also be placed inside the
|
||||||
|
"templates/" directory in your wiki's source.
|
||||||
|
|
||||||
|
## Template syntax
|
||||||
|
|
||||||
|
Ikiwiki uses the HTML::Template module as its template engine. This
|
||||||
|
supports things like conditionals and loops in templates and is pretty easy
|
||||||
|
to learn. All you really need to know are a few things:
|
||||||
|
|
||||||
|
* To insert the value of a template variable, use `<TMPL_VAR variable>`.
|
||||||
|
* To make a block of text conditional on a variable being set use
|
||||||
|
`<TMPL_IF NAME="variable">text</TMPL_IF>`.
|
||||||
|
* To use one block of text if a variable is set and a second if it's not,
|
||||||
|
use `<TMPL_IF NAME="variable">text<TMPL_ELSE>other text</TMPL_IF>`
|
||||||
|
|
||||||
|
[[!meta robots="noindex, follow"]]
|
||||||
|
|
|
@ -6,5 +6,5 @@ add a feed that contains all the comments posted to any page. Here's how:
|
||||||
\[[!inline pages="internal(*/comment_*)" template=comment]]
|
\[[!inline pages="internal(*/comment_*)" template=comment]]
|
||||||
|
|
||||||
The special [[ikiwiki/PageSpec]] matches all comments. The
|
The special [[ikiwiki/PageSpec]] matches all comments. The
|
||||||
[[template|wikitemplates]] causes the comments to be displayed formatted
|
[[template|templates]] causes the comments to be displayed formatted
|
||||||
nicely.
|
nicely.
|
||||||
|
|
|
@ -17,7 +17,7 @@ The new tag file is then complied during the change phase.
|
||||||
|
|
||||||
*see git history of this page if you want the patch --[[smcv]]*
|
*see git history of this page if you want the patch --[[smcv]]*
|
||||||
|
|
||||||
This uses a [[template|wikitemplates]] called `autotagpage.tmpl`, here is my template file:
|
This uses a [[template|templates]] called `autotagpage.tmpl`, here is my template file:
|
||||||
|
|
||||||
\[[!inline pages="link(<TMPL_VAR TAG>)" archive="yes"]]
|
\[[!inline pages="link(<TMPL_VAR TAG>)" archive="yes"]]
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@ This would allow setting:
|
||||||
|
|
||||||
templatedir => "$srcdir/templates",
|
templatedir => "$srcdir/templates",
|
||||||
|
|
||||||
.. and then the [[wikitemplates]] are managed like other wiki files; and
|
.. and then the [[templates]] are managed like other wiki files; and
|
||||||
like other wiki files, a change to them automatically updates dependent
|
like other wiki files, a change to them automatically updates dependent
|
||||||
pages.
|
pages.
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
Create some nice(r) stylesheets.
|
Create some nice(r) stylesheets.
|
||||||
|
|
||||||
Should be doable w/o touching a single line of code, just
|
Should be doable w/o touching a single line of code, just
|
||||||
editing the [[wikitemplates]] and/or editing [[style.css]].
|
editing the [[templates]] and/or editing [[style.css]].
|
||||||
|
|
||||||
[[done]] ([[css_market]] ..)
|
[[done]] ([[css_market]] ..)
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
> Another useful feature might be to be able to choose a different [[template|wikitemplates]]
|
> Another useful feature might be to be able to choose a different [[template|templates]]
|
||||||
> file for some pages; [[blog]] pages would use a template different from the
|
> file for some pages; [[blog]] pages would use a template different from the
|
||||||
> home page, even if both are managed in the same repository, etc.
|
> home page, even if both are managed in the same repository, etc.
|
||||||
|
|
||||||
|
|
|
@ -120,10 +120,11 @@ also be configured using a setup file.
|
||||||
|
|
||||||
* --templatedir dir
|
* --templatedir dir
|
||||||
|
|
||||||
Specify the directory that the page [[templates|wikitemplates]] are stored in.
|
Specify the directory that [[templates|templates]] are stored in.
|
||||||
Default is `/usr/share/ikiwiki/templates`, or another location as configured at
|
Default is `/usr/share/ikiwiki/templates`, or another location as configured at
|
||||||
build time. If the templatedir is changed, missing templates will still
|
build time. If the templatedir is changed, missing templates will still
|
||||||
be searched for in the default location as a fallback.
|
be searched for in the default location as a fallback. Templates can also be
|
||||||
|
placed in the "templates/" subdirectory of the srcdir.
|
||||||
|
|
||||||
Note that if you choose to copy and modify ikiwiki's templates, you will need
|
Note that if you choose to copy and modify ikiwiki's templates, you will need
|
||||||
to be careful to keep them up to date when upgrading to new versions of
|
to be careful to keep them up to date when upgrading to new versions of
|
||||||
|
|
|
@ -1,52 +0,0 @@
|
||||||
ikiwiki uses the HTML::Template module as its template engine. This
|
|
||||||
supports things like conditionals and loops in templates and is pretty easy
|
|
||||||
to learn.
|
|
||||||
|
|
||||||
The aim is to keep almost all html out of ikiwiki and in the templates.
|
|
||||||
|
|
||||||
It ships with some basic templates which can be customised. These are
|
|
||||||
located in `/usr/share/ikiwiki/templates` by default; the `templatedir`
|
|
||||||
setting can be used to make another directory be searched first.
|
|
||||||
|
|
||||||
* `page.tmpl` - Used for displaying all regular wiki pages.
|
|
||||||
* `misc.tmpl` - Generic template used for any page that doesn't
|
|
||||||
have a custom template.
|
|
||||||
* `editpage.tmpl` - Create/edit page.
|
|
||||||
* `change.tmpl` - Used to create a page describing a change made to the wiki.
|
|
||||||
* `passwordmail.tmpl` - Not a html template, this is used to
|
|
||||||
generate a mail with an url the user can use to reset their password.
|
|
||||||
* `rsspage.tmpl` - Used for generating rss feeds for [[blogs|blog]].
|
|
||||||
* `rssitem.tmpl` - Used for generating individual items on rss feeds.
|
|
||||||
* `atompage.tmpl` - Used for generating atom feeds for blogs.
|
|
||||||
* `atomitem.tmpl` - Used for generating individual items on atom feeds.
|
|
||||||
* `inlinepage.tmpl` - Used for adding a page inline in a blog
|
|
||||||
page.
|
|
||||||
* `archivepage.tmpl` - Used for listing a page in a blog archive page.
|
|
||||||
* `microblog.tmpl` - Used for showing a microblogging post inline.
|
|
||||||
* `blogpost.tmpl` - Used for a form to add a post to a blog (and a rss/atom links)
|
|
||||||
* `feedlink.tmpl` - Used to add rss/atom links if blogpost.tmpl is not used.
|
|
||||||
* `aggregatepost.tmpl` - Used by the [[plugins/aggregate]] plugin to create
|
|
||||||
a page for a post.
|
|
||||||
* `searchform.tmpl` - Used by the [[plugins/search]] plugin to add a search
|
|
||||||
form to wiki pages.
|
|
||||||
* `searchquery.tmpl` - This is an omega template, used by the
|
|
||||||
[[plugins/search]] plugin.
|
|
||||||
* `comment.tmpl` - This template is used to display a comment
|
|
||||||
by the [[plugins/comments]] plugin.
|
|
||||||
* `editcomment.tmpl` - This template is the comment post form for the
|
|
||||||
[[plugins/comments]] plugin.
|
|
||||||
* `commentmoderation.tmpl` - This template is used to produce the comment
|
|
||||||
moderation form.
|
|
||||||
* `recentchanges.tmpl` - This template is used for listing a change
|
|
||||||
on the RecentChanges page.
|
|
||||||
|
|
||||||
The [[plugins/pagetemplate]] plugin can allow individual pages to use a
|
|
||||||
different template than `page.tmpl`.
|
|
||||||
|
|
||||||
The [[plugins/template]] plugin also uses templates, though those
|
|
||||||
[[templates]] are typically stored as pages in the wiki, and are inserted
|
|
||||||
into pages.
|
|
||||||
|
|
||||||
The [[plugins/edittemplate]] plugin is used to make new pages default to
|
|
||||||
containing text from a template, which can be filled as out the page is
|
|
||||||
edited.
|
|
|
@ -1,46 +0,0 @@
|
||||||
## Place for local templates
|
|
||||||
Where does one put any locally modified templates for an individual ikiwiki? --Ivan Z.
|
|
||||||
|
|
||||||
> You can put them whereever you like; the `templatedir` controls
|
|
||||||
> where ikiwiki looks for them. --[[Joey]]
|
|
||||||
|
|
||||||
Thank you for your response! My question arose out of my intention to make
|
|
||||||
custom templates for a wiki--specifically suited for the kind of content
|
|
||||||
it will have--so, that would mean I would want to distribute them through
|
|
||||||
git together with other content of the wiki. So, for this case the
|
|
||||||
separation of conceptually ONE thing (the content, the templates, and the
|
|
||||||
config option which orders to use these templates) into THREE separate
|
|
||||||
files/repos (the main content repo, the repo with templates, and the config
|
|
||||||
file) is not convenient: instead of distributing a single repo, I have to
|
|
||||||
tell people to take three things if they want to replicate this wiki. How
|
|
||||||
would you solve this inconvenience? Perhaps, a default location of the
|
|
||||||
templates *inside* the source repo would do?--Ivan Z.
|
|
||||||
|
|
||||||
> I would avoid putting the templates in a subdirectory of the ikiwiki srcdir.
|
|
||||||
> (I'd also avoid putting the ikiwiki setup file there.)
|
|
||||||
> While it's safe to do either in some cases, there are configurations where
|
|
||||||
> it's unsafe. For example, a malicious user could use attachment handling to
|
|
||||||
> replace those files with their own, bad versions.
|
|
||||||
>
|
|
||||||
> So, two ideas for where to put the templatedir and ikiwiki setup.
|
|
||||||
|
|
||||||
> * The easiest option is to put your wiki content in a subdirectory
|
|
||||||
> ("wiki", say) and point `srcdir` at that.
|
|
||||||
> then you can have another subdirectory for the wikitemplates,
|
|
||||||
> and put the setup file at the top.
|
|
||||||
> * Another option if using git would be to have a separate branch,
|
|
||||||
> in the same git repository, that holds wikitemplates and the setup file.
|
|
||||||
> Then you check out the repository once to make the `srcdir` available,
|
|
||||||
> and have a second checkout, of the other branch, to make the other stuff
|
|
||||||
> available.
|
|
||||||
>
|
|
||||||
> Note that with either of these methods, you have to watch out if
|
|
||||||
> giving other direct commit access to the repository. They could
|
|
||||||
> still edit the setup file and templates, so only trusted users should
|
|
||||||
> be given access. (It is, however, perfectly safe to let people edit
|
|
||||||
> the wiki via the web, and is even safe to configure
|
|
||||||
> [[tips/untrusted_git_push]] to such a repository.) --[[Joey]]
|
|
||||||
|
|
||||||
Thanks, that's a nice and simple idea: to have a subdirectory! I'll try it. --Ivan Z.
|
|
||||||
|
|
||||||
A [[!taglink wish|wishlist]]: the ikiwiki program could be improved so that it follows the same logic as git in looking for its config: it could ascend directories until it finds an `.ikiwiki/` directory with `.ikiwiki/setup` and then uses that configuration. Now I'm tired to always type `ikiwiki --setup path/to/the/setup --refresh` when working in my working clone of the sources; I'd like to simply type `ikiwiki` instead, and let it find the setup file. The default location to look for templates could also be made to be a sibling of the setup file: `.ikiwiki/templates/`. --Ivan Z.
|
|
Loading…
Reference in New Issue