diff options
Diffstat (limited to 'ikiwiki/pagespec')
-rw-r--r-- | ikiwiki/pagespec/attachment.mdwn | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/ikiwiki/pagespec/attachment.mdwn b/ikiwiki/pagespec/attachment.mdwn new file mode 100644 index 0000000..2a1f8aa --- /dev/null +++ b/ikiwiki/pagespec/attachment.mdwn @@ -0,0 +1,56 @@ +[[!meta robots="noindex, follow"]] +[[!if test="enabled(attachment)" + then="This wiki has attachments **enabled**." + else="This wiki has attachments **disabled**."]] + +If attachments are enabled, the wiki admin can control what types of +attachments will be accepted, by entering a [[ikiwiki/PageSpec]] in the +"Allowed Attachments" field of their preferences page. + +For example, to limit arbitrary files to 50 kilobytes, but allow +larger mp3 files to be uploaded by joey into a specific directory, and +check all attachments for virii, something like this could be used: + + virusfree() and ((user(joey) and podcast/*.mp3 and mimetype(audio/mpeg) and maxsize(15mb)) or (!ispage() and maxsize(50kb))) + +The regular [[ikiwiki/PageSpec]] syntax is expanded with thw following +additional tests: + +* maxsize(size) + + Tests whether the attachment is no larger than the specified size. + The size defaults to being in bytes, but "kb", "mb", "gb" etc can be + used to specify the units. + +* minsize(size) + + Tests whether the attachment is no smaller than the specified size. + +* ispage() + + Tests whether the attachment will be treated by ikiwiki as a wiki page. + (Ie, if it has an extension of ".mdwn", or of any other enabled page + format). + + So, if you don't want to allow wiki pages to be uploaded as attachments, + use `!ispage()` ; if you only want to allow wiki pages to be uploaded + as attachments, use `ispage()`. + +* user(username) + + Tests whether the attachment is being uploaded by a user with the + specified username. If openid is enabled, an openid can also be put here. + +* ip(address) + + Tests whether the attacment is being uploaded from the specified IP + address. + +* mimetype(foo/bar) + + This checks the MIME type of the attachment. You can include a glob + in the type, for example `mimetype(image/*)`. + +* virusfree() + + Checks the attachment with an antiviral program. |