aboutsummaryrefslogtreecommitdiff
path: root/doc/templates.mdwn
blob: eb8c89afc59fa60f11f92aef0ff87f6fdc19588e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
[[Ikiwiki]] uses many templates for many purposes. By editing its templates,
you can fully customise its appearance, and avoid duplicate content.

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 to modify templates is this:

* 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 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 variable>text<TMPL_ELSE>other text</TMPL_IF>`

[[!if test="enabled(template) or enabled(edittemplate)" then="""
## template pages

Template pages are regular wiki pages that are used as templates for other
pages.
"""]]

[[!if test="enabled(template)" then="""
The [[!iki ikiwiki/directive/template desc="template directive"]] allows
template pages to be filled out and inserted into other pages in the wiki.
"""]]

[[!if test="enabled(edittemplate)" then="""
The [[!iki ikiwiki/directive/edittemplate desc="edittemplate directive"]] can
be used to make new pages default to containing text from a template
page, which can be filled out as the page is edited.
"""]]

[[!if test="(enabled(template) or enabled(edittemplate))
and enabled(inline)" then="""
These template pages are currently available:

[[!inline pages="templates/* and !*.tmpl and !templates/*/* and !*/discussion"
feeds=no archive=yes sort=title template=titlepage
rootpage=templates postformtext="Add a new template page named:"]]
"""]]

## template files

Template files are unlike template pages in that they have the extension
`.tmpl`. Template files are used extensively by Ikiwiki to generate html.
They can contain html that would not normally be allowed on a wiki page.

Template files are located in `/usr/share/ikiwiki/templates` by default;
the `templatedir` setting can be used to make another directory be
searched first. Customised template files can also be placed inside the
"templates/" directory in your wiki's source -- files placed there override
ones in the `templatedir`.

Here is a full list of the template files used:

* `page.tmpl` - Used for displaying all regular wiki pages. This is the
  key template to customise to change the look and feel of Ikiwiki.
  [[!if test="enabled(pagetemplate)" then="""
  (The [[!iki ikiwiki/directive/pagetemplate desc="pagetemplate directive"]]
  can be used to make a page use a different template than `page.tmpl`.)"""]]
* `rsspage.tmpl` - Used for generating rss feeds for blogs.
* `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 displaying a post in a blog.
* `archivepage.tmpl` - Used for listing a page in a blog archive page.
* `titlepage.tmpl` - Used for listing a page by title 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 rss/atom links)
* `feedlink.tmpl` - Used to add rss/atom links if `blogpost.tmpl` is not used.
* `aggregatepost.tmpl` - Used by the aggregate plugin to create
  a page for a post.
* `searchform.tmpl`, `googleform.tmpl` - Used by the search plugin 
  and google plugin to add search forms to wiki pages.
* `searchquery.tmpl` - This is a Omega template, used by the
  search plugin.
* `comment.tmpl` - Used by the comments plugin to display a comment.
* `change.tmpl` - Used to create a page describing a change made to the wiki.
* `recentchanges.tmpl` - Used for listing a change on the RecentChanges page.
* `autoindex.tmpl` - Filled in by the autoindex plugin to make index pages.
* `autotag.tmpl` - Filled in by the tag plugin to make tag pages.
* `calendarmonth.tmpl`, `calendaryear.tmpl` - Used by ikiwiki-calendar to
  make calendar archive pages.
* `editpage.tmpl`, `editconflict.tmpl`, `editcreationconflict.tmpl`,
  `editfailedsave.tmpl`, `editpagegone.tmpl`, `pocreatepage.tmpl`,
  `editcomment.tmpl` `commentmoderation.tmpl`, `renamesummary.tmpl`,
  `passwordmail.tmpl`, `openid-selector.tmpl`, `revert.tmpl` - Parts of ikiwiki's user
  interface; do not normally need to be customised.

[[!meta robots="noindex, follow"]]

here is a list of variables used in various tmpl files:
ACTION
ACTIONS
ADDCOMMENTURL
ATOMCOMMENTSURL
ATOMURL
ATTACHMENTS-CLASS
AUTHOR
AUTHORURL
BACKLINKS
BASEURL
BROKENLINKS
BROKENLINKS_CHECKED
CATEGORIES
CATEGORY
CDATE_3339
CDATE_822
CGIURL
COMMENTAUTHOR
COMMENTAUTHORURL
COMMENTID
COMMENTIP
COMMENTOPENID
COMMENTS
COMMENTSLINK
COMMENTSURL
COMMENTUSER
COMMITDATE
COMMITTYPE
CONTENT
COPYRIGHT
CTIME
DEST
DIFF
DIFFURL
DISCUSSIONLINK
DYNAMIC
EDITURL
ENCLOSURE
ERROR
ERROR_MESSAGE
EXTRAFOOTER
FAVICON
FEEDDATE
FEEDDESC
FEEDLINKS
FEEDURL
FIELD-ATTACHMENT
FIELD-DO
FIELD-EDITCONTENT
FIELD-EDITMESSAGE
FIELD-FROM
FIELD-LINK
FIELD-NEWFILE
FIELD-PAGE
FIELD-RCSINFO
FIELD-REMOVE
FIELD-RENAME
FIELD-REV
FIELD-REVERTMESSAGE
FIELD-SELECT
FIELD-SID
FIELD-SUBJECT
FIELD-TYPE
FIELD-UPLOAD
FIRST
FIXEDLINKS
FORCEBASEURL
FORCEBASEURL
form-cancel
FORM-END
FORM-START
FORM-SUBMIT
GETSOURCEURL
GUID
HAVE_ACTIONS
HELPONFORMATTINGLINK
HISTORYURL
HTML5
ID
ISTRANSLATION
JAVASCRIPT
LANG
LANGUAGE
LAST
LENGTH
LICENSE
LINE
LINK
LOCAL_CSS
MASTER
MDATE_3339
MESSAGE
META
MONTH
MORE_BACKLINKS
MTIME
NAME
NAME="ATTACHMENT_LIST"
NAME="ATTACHMENT_LIST"
NAME="CAN_COMMIT"
NAME="FIELD-ATTACHMENT"
NAME="FORM-END"
NAME="PAGE_DIFF"
NAME="PAGE_PREVIEW"
NAME="PAGE_PREVIEW"
NAME="PAGE_SELECT"
NAME=ALLOWAUTHOR
NAME=FIELD-AUTHOR
NAME=FIELD-URL
NAME=USERNAME
NONOPENIDFORM
OPENID_URL
OTHERLANGUAGES
PAGE
PAGE_DIFF
PAGE_PREVIEW
PAGES
PAGESPEC
PAGEURL
PARENTLINKS
PASSWORDURL
PERCENT
PERCENTTRANSLATED
PERMALINK
POSTFORMTEXT
PREFSURL
RECENTCHANGESURL
RELVCS
REMOTE_ADDR
REMOVEURL
REV
REVERTURL
ROOTPAGE
RSSURL
SEARCHACTION
SEARCHFORM
SID
SIDEBAR
SIGNINURL
SIZE
SRC
TAG
TAGNAME
TAGS
TITLE
TYPE
URL
USER
USER_NAME
VERSION
VIEW
WIKINAME
WIKIURL
WMD_PREVIEW
YEAR