]> git.vanrenterghem.biz Git - git.ikiwiki.info.git/commitdiff
Merge commit 'upstream/master' into prv/po
authorintrigeri <intrigeri@boum.org>
Sun, 8 Mar 2009 08:50:27 +0000 (09:50 +0100)
committerintrigeri <intrigeri@boum.org>
Sun, 8 Mar 2009 08:50:27 +0000 (09:50 +0100)
Conflicts:

IkiWiki/Plugin/editpage.pm
debian/control
debian/copyright
doc/todo/need_global_renamepage_hook.mdwn

Signed-off-by: intrigeri <intrigeri@boum.org>
1  2 
debian/control
debian/copyright
doc/plugins/write.mdwn

diff --combined debian/control
index 78898a1a4eeedee4b924b5f9b6c6c46e525e44e5,65b80138bc070e646b052bcc1bba26260404cc2b..c6170c441ddbdd81a087afc90386c6343da1edfd
@@@ -1,7 -1,7 +1,7 @@@
  Source: ikiwiki
  Section: web
  Priority: optional
- Build-Depends: perl, debhelper (>= 5)
+ Build-Depends: perl, debhelper (>= 7.0.50)
  Build-Depends-Indep: dpkg-dev (>= 1.9.0), libxml-simple-perl, libtext-markdown-perl | markdown, libtimedate-perl, libhtml-template-perl, libhtml-scrubber-perl, wdg-html-validator, libhtml-parser-perl, liburi-perl, perlmagick
  Maintainer: Joey Hess <joeyh@debian.org>
  Uploaders: Josh Triplett <josh@freedesktop.org>
@@@ -12,9 -12,9 +12,9 @@@ Vcs-Browser: http://git.ikiwiki.info/?p
  
  Package: ikiwiki
  Architecture: all
- Depends: ${perl:Depends}, libtext-markdown-perl | markdown, libhtml-scrubber-perl, libhtml-template-perl, libhtml-parser-perl, liburi-perl
+ Depends: ${misc:Depends}, ${perl:Depends}, libtext-markdown-perl | markdown, libhtml-scrubber-perl, libhtml-template-perl, libhtml-parser-perl, liburi-perl
  Recommends: gcc | c-compiler, libc6-dev | libc-dev, subversion | git-core (>= 1:1.5.0) | tla | bzr (>= 0.91) | mercurial | monotone (>= 0.38), libxml-simple-perl, libnet-openid-consumer-perl, liblwpx-paranoidagent-perl, libtimedate-perl, libcgi-formbuilder-perl (>= 3.05), libcgi-session-perl (>= 4.14-1), libmail-sendmail-perl, libauthen-passphrase-perl, libterm-readline-gnu-perl
- Suggests: viewvc | gitweb | viewcvs, libsearch-xapian-perl, xapian-omega (>= 1.0.5), librpc-xml-perl, libtext-wikiformat-perl, python, python-docutils, polygen, tidy, libhtml-tree-perl, libxml-feed-perl, libmailtools-perl, perlmagick, libfile-mimeinfo-perl, libcrypt-ssleay-perl, liblocale-gettext-perl (>= 1.05-1), libtext-typography-perl, libtext-csv-perl, libdigest-sha1-perl, graphviz, libnet-amazon-s3-perl, sparkline-php, texlive, dvipng, po4a (>= 0.35-1), gettext
 -Suggests: viewvc | gitweb | viewcvs, libsearch-xapian-perl, xapian-omega (>= 1.0.5), librpc-xml-perl, libtext-wikiformat-perl, python, python-docutils, polygen, tidy, libhtml-tree-perl, libxml-feed-perl, libmailtools-perl, perlmagick, libfile-mimeinfo-perl, libcrypt-ssleay-perl, liblocale-gettext-perl (>= 1.05-1), libtext-typography-perl, libtext-csv-perl, libdigest-sha1-perl, graphviz, libnet-amazon-s3-perl, sparkline-php, texlive, dvipng, libtext-wikicreole-perl
++Suggests: viewvc | gitweb | viewcvs, libsearch-xapian-perl, xapian-omega (>= 1.0.5), librpc-xml-perl, libtext-wikiformat-perl, python, python-docutils, polygen, tidy, libhtml-tree-perl, libxml-feed-perl, libmailtools-perl, perlmagick, libfile-mimeinfo-perl, libcrypt-ssleay-perl, liblocale-gettext-perl (>= 1.05-1), libtext-typography-perl, libtext-csv-perl, libdigest-sha1-perl, graphviz, libnet-amazon-s3-perl, sparkline-php, texlive, dvipng, libtext-wikicreole-perl, po4a (>= 0.35-1), gettext
  Conflicts: ikiwiki-plugin-table
  Replaces: ikiwiki-plugin-table
  Provides: ikiwiki-plugin-table
diff --combined debian/copyright
index c5993edb2b68195b8e7aa584ba508438e3ba5436,f589b4a8f5e68eed1265a20a7c0ad61be862808f..0299d8a777daab128f1c1932d1340b340822b960
@@@ -76,7 -76,7 +76,7 @@@ Files: htmltidy.p
  Copyright: © 2006 Faidon Liambotis
  License: GPL-2+
  
- Files: htmlbalance.pm
+ Files: htmlbalance.pm, underlay.pm
  Copyright: © 2008 Simon McVittie <http://smcv.pseudorandom.co.uk/>
  License: GPL-2+
  
@@@ -118,10 -118,10 +118,14 @@@ Copyright
   © 2008 Simon McVittie <http://smcv.pseudorandom.co.uk/>
  License: GPL-2+
  
 +Files: po.pm
 +Copyright: © 2008-2009 intrigeri <intrigeri@boum.org>
 +License: GPL-2+
 +
+ Files: 404.pm
+ Copyright: © 2009 Simon McVittie <http://smcv.pseudorandom.co.uk/>
+ License: GPL-2+
  Files: doc/logo/*
  Copyright: © 2006 Recai Oktaş <roktas@debian.org>
  License: GPL-2+
diff --combined doc/plugins/write.mdwn
index 0c5ad4540b70cc96742fa56ea086ef671491b0da,696bc6bc37bb910af72e256b90d2250159965c7e..be01605e83568ac633a94749b36001ec5e6689a1
@@@ -107,7 -107,7 +107,7 @@@ adding or removing files from it
  
  This hook is called early in the process of building the wiki, and is used
  as a first pass scan of the page, to collect metadata about the page. It's
- mostly used to scan the page for WikiLinks, and add them to `%links`.
+ mostly used to scan the page for [[WikiLinks|ikiwiki/WikiLink]], and add them to `%links`.
  Present in IkiWiki 2.40 and later.
  
  The function is passed named parameters "page" and "content". Its return
@@@ -168,7 -168,7 +168,7 @@@ htmlize the page) along with the rest o
  
        hook(type => "linkify", id => "foo", call => \&linkify);
  
- This hook is called to convert [[WikiLinks|WikiLink]] on the page into html
+ This hook is called to convert [[WikiLinks|ikiwiki/WikiLink]] on the page into html
  links. The function is passed named parameters "page", "destpage", and
  "content". It should return the linkified content.  Present in IkiWiki 2.40
  and later.
@@@ -189,9 -189,14 +189,14 @@@ The function is passed named parameters
  return the htmlized content.
  
  If `hook` is passed an optional "keepextension" parameter, set to a true
- value, then this extension will not be stripped from the source filename when
+ value, then the extension will not be stripped from the source filename when
  generating the page.
  
+ If `hook` is passed an optional "noextension" parameter, set to a true
+ value, then the id parameter specifies not a filename extension, but
+ a whole filename that can be htmlized. This is useful for files
+ like `Makefile` that have no extension.
  ### pagetemplate
  
        hook(type => "pagetemplate", id => "foo", call => \&pagetemplate);
@@@ -321,26 -326,6 +326,26 @@@ This hook should avoid directly redirec
  since it's sometimes used to test to see which pages in a set of pages a
  user can edit.
  
 +### canremove
 +
 +      hook(type => "canremove", id => "foo", call => \&canremove);
 +
 +This hook can be used to implement arbitrary access methods to control
 +when a page can be removed using the web interface (commits from
 +revision control bypass it). It works exactly like the `canedit` hook,
 +but is passed the named parameters `cgi` (a CGI object), `session`
 +(a session object) and `page` (the page subject to deletion).
 +
 +### canrename
 +
 +      hook(type => "canrename", id => "foo", call => \&canrename);
 +
 +This hook can be used to implement arbitrary access methods to control when
 +a page can be renamed using the web interface (commits from revision control
 +bypass it). It works exactly like the `canedit` hook,
 +but is passed the named parameters `cgi` (a CGI object), `session` (a
 +session object), `src`, `srcfile`, `dest` and `destfile`.
 +
  ### checkcontent
        
        hook(type => "checkcontent", id => "foo", call => \&checkcontent);
@@@ -353,9 -338,8 +358,9 @@@ the content the user has entered is a c
  additional parameters: `author`, `url`, and `subject`. The `subject`
  parameter may also be filled with the user's comment about the change.
  
 -Note: When the user edits an existing wiki page, the passed `content` will
 -include only the lines that they added to the page, or modified.
 +Note: When the user edits an existing wiki page, this hook is also
 +passed a `diff` named parameter, which will include only the lines
 +that they added to the page, or modified.
  
  The hook should return `undef` on success. If the content is disallowed, it
  should return a message stating what the problem is, or a function
@@@ -406,24 -390,9 +411,24 @@@ they're saved, etc
        hook(type => "renamepage", id => "foo", call => \&renamepage);
  
  This hook is called by the [[plugins/rename]] plugin when it renames
 -something. The hook is passed named parameters: `page`, `oldpage`,
 -`newpage`, and `content`, and should try to modify the content to reflect
 -the name change. For example, by converting links to point to the new page.
 +something, once per page linking to the renamed page's old location.
 +The hook is passed named parameters: `page`, `oldpage`, `newpage`, and
 +`content`, and should try to modify the content of `page` to reflect
 +the name change. For example, by converting links to point to the
 +new page.
 +
 +### rename
 +
 +      hook(type => "rename", id => "foo", call => \&rename);
 +
 +When a page or set of pages is renamed, the referenced function is
 +called, and is passed named parameters:
 +
 +* `torename`: a reference to an array of hashes with keys: `src`, `srcfile`,
 +  `dest`, `destfile`, `required`. Such a hook function can either return the
 +  array content unchanged, or modify it and return the modified version.
 +* `cgi`: a CGI object
 +* `session`: a session object.
  
  ### getsetup
  
@@@ -470,7 -439,7 +475,7 @@@ describes the plugin as a whole. For ex
  * `example` can be set to an example value.
  * `description` is a short description of the option.
  * `link` is a link to further information about the option. This can either
-   be a wikilink, or an url.
+   be a [[ikiwiki/WikiLink]], or an url.
  * `advanced` can be set to true if the option is more suitable for advanced
    users.
  * `safe` should be false if the option should not be displayed in unsafe
@@@ -665,6 -634,16 +670,16 @@@ A failure to write the file will resul
  
  If the destination directory doesn't exist, it will first be created.
  
+ The filename and directory are separate parameters because of
+ some security checks done to avoid symlink attacks. Before writing a file,
+ it checks to make sure there's not a symlink with its name, to avoid
+ following the symlink. If the filename parameter includes a subdirectory
+ to put the file in, it also checks if that subdirectory is a symlink, etc.
+ The directory parameter, however, is not checked for symlinks. So,
+ generally the directory parameter is a trusted toplevel directory like
+ the srcdir or destdir, and any subdirectories of this are included in the
+ filename parameter.
  #### `will_render($$)`
  
  Given a page name and a destination file name (not including the base
@@@ -706,7 -685,7 +721,7 @@@ a wiki page name
  #### `linkpage($)`
  
  This converts text that could have been entered by the user as a
- [[WikiLink]] into a wiki page name.
+ [[ikiwiki/WikiLink]] into a wiki page name.
  
  #### `srcfile($;$)`
  
@@@ -771,7 -750,7 +786,7 @@@ are collected together to form the Rece
  
  To make an internal use page, register a filename extension that starts
  with "_". Internal use pages cannot be edited with the web interface,
- generally shouldn't contain wikilinks or preprocessor directives (use
+ generally shouldn't contain [[WikiLinks|ikiwiki/WikiLink]] or preprocessor directives (use
  either on them with extreme caution), and are not matched by regular
  PageSpecs glob patterns, but instead only by a special `internal()`
  [[ikiwiki/PageSpec]].
@@@ -940,7 -919,7 +955,7 @@@ or wrap one of the functions
  For example, your plugin might want to override `displaytime`, to change
  the html markup used when displaying a date. Or it might want to override
  `IkiWiki::formattime`, to change how a date is formatted. Or perhaps you
- want to override `bestlink` and change how ikiwiki deals with WikiLinks.
+ want to override `bestlink` and change how ikiwiki deals with [[WikiLinks|ikiwiki/WikiLink]].
  
  By venturing into this territory, your plugin is becoming tightly tied to
  ikiwiki's internals. And it might break if those internals change. But