aboutsummaryrefslogtreecommitdiff
path: root/IkiWiki.pm
Commit message (Collapse)AuthorAge
* Added only_committed_changes config setting, which speeds up wiki refresh by ↵Joey Hess2013-11-16
| | | | querying git to find the files that were changed, rather than looking at the work tree. Not enabled by default as it can break some setups where not all files get committed to git.
* Optmised loadindex by caching the page name in the index.Joey Hess2013-11-16
| | | | | | | | | | | | | I have benchmarked the pagename() call this avoids taking up to 2 seconds for a loadindex in a large wiki. The total loadindex for that wiki was 6.46s, so this is a significant improvment. Even on a smaller site, this reduces the refresh time from 1.69 to 1.52 seconds. The only breakage risk here is that pagename() can change the page name it calculates due to setup changes. But in the case of a setup change, the whole site is rebuilt. So the cached page name is not used in that case.
* Fixed unncessary tight loop hash copy in saveindex where a pointer can be ↵Joey Hess2013-11-16
| | | | | | | | | used instead. Can speed up refreshes by nearly 50% in some circumstances. I *think* this is ok, at least it results in close to the same index being saved as before. The difference is that plugins that have a pagestate of {} have that recorded this way, while with the tight loop, the key for the plugin in not copied in that case. I cannot see how this could matter.
* Fix cookiejar default setting.Joey Hess2013-09-04
|
* cookiejar is now a core config setting.Amitai Schlair2013-08-03
|
* Honor proxy env vars and reliably honor cookiejar.Amitai Schlair2013-07-27
|
* The ip() pagespec can now contain glob characters to match eg, a subnet full ↵Joey Hess2013-07-08
| | | | of spammers.
* Allow dots in parameter key namesGiuseppe Bilotta2013-02-15
| | | | | This allows e.g. the meta command to be used to introduce DublinCore metadata.
* add cgi_overload_messageJoey Hess2012-10-11
|
* add cgi_overload_delay tunableJoey Hess2012-10-09
| | | | | | | | | | | Try to avoid a situation in which so many ikiwiki cgi wrapper programs are running, all waiting on some long-running thing like a site rebuild, that it prevents the web server from doing anything else. The current approach only avoids this problem for GET requests; if multiple cgi's run GETs on a site at the same time, one will display a "please wait" page for a configurable number of seconds, which then redirects to retry. To enable this protection, set cgi_overload_delay to the number of seconds to wait. This is not enabled by default.
* passwordauth: Fix url in password recovery email to be absolute.Joey Hess2012-04-02
| | | | | This got broken when cgiurl began often returning a relative url. Added a cgiurl_abs for the things that need a guaranteed absolute cgiurl.
* fix typo in LC_TIME locale lookupJoey Hess2012-02-01
|
* calendar, prettydate: Fix strftime encoding bugJoey Hess2012-01-30
| | | | | | | | | | | | | strftime is a C function, it does not return decoded utf8. Several places in ikiwiki manually decoded it, but at least two forgot to. Also, strftime might not return even encoded utf8, if LC_TIME is set to a non-utf8 value. Went ahead and supported decoding whatever encoding it uses. The remaining direct calls to strftime() are all ones that first set LC_TIME=C, in order to get times that are not for human display.
* backlink(.) should behave like backlink(<current page>)Giuseppe Bilotta2012-01-13
| | | | | | | | Since commit c4d4cad3befbbd444d094cbeb0b6ebba3910a025, the single dot in a pagespec can be used to mean the current page. While this worked correctly in link() it didn't work in backlink(). Fix this by explicitly checking the testpage in backlink against . and replacing it with the current location if necessary.
* Add path and path_natural sort ordersSimon McVittie2011-12-06
| | | | (cherry picked from commit 272e0b2f17c33c625b494b07f581da400066a216)
* Support private, group, public as values for umaskSimon McVittie2011-11-27
| | | | | | | These are equivalent to octal 077, 027 and 022, but easier to get from YAML. Signed-off-by: Simon McVittie <smcv@debian.org>
* Avoid using named capture groups in heredoc code for oldperl compatability.Joey Hess2011-07-30
| | | | Also reordered heredoc part of regexp for consistency.
* Preserve mixed case in page creation links, and when creating a page whose ↵Joey Hess2011-06-29
| | | | title is mixed case, allow selecting between the mixed case and all lower-case names.
* Support svg as a inlinable image typeJoey Hess2011-06-29
| | | | | svg images can be included on a page by simply linking to them, or by using the img directive. Note that sanitizing svg files is still not addressed.
* html5 is not experimental anymore. But not the default either, quite yet.Joey Hess2011-06-23
|
* added support for here-docs and ''' in parameters.Timo Paulssen2011-05-13
|
* Yaml formatted setup files are now produced by defaultJoey Hess2011-03-24
| | | | | | | This has been a while coming. It turns out that non-excutable setup files have a number of benefits. Also, I find YAML setup files easier to edit myself, and I suspect many users will prefer not needing to deal with perl syntax.
* Add timezone setting in setup file. This alows time zone to be configured ↵Joey Hess2011-03-24
| | | | via the web.
* avoid uninitlized value when urlto is called with 1 parameter and no url is ↵Joey Hess2011-02-27
| | | | | | | | | configured This brings back the old behavior before urlto changes for this case. It will generate a path like "/foo", which is not right, but is the same as is generated by urlto($page, "", 1) -- which is what the code that now uses 1-parameter urlto used to use.
* Add add_literal_underlay and use it for the transient underlaySimon McVittie2011-01-07
| | | | This means we don't need to import Cwd and use abs_path.
* use cgitemplate, remove misctemplateJoey Hess2011-01-05
|
* make urlabs a noop if base url is not providedJoey Hess2011-01-05
| | | | | This allows urlabs($foo, $config{url}) to be used safely, even if no url is configured.
* factored out an urlabs from aggregate and cgiJoey Hess2011-01-05
|
* oopsJoey Hess2011-01-05
|
* Temporarily revert one part of the multiple url support in the last release. ↵Joey Hess2011-01-05
| | | | Non-edit pages are now back to having `<base>` set to the site's main url.
* Add a second parameter to the rcs_diff hook, and avoid bloating memory ↵Joey Hess2010-12-29
| | | | reading in enormous commits.
* urlto: simplify the to='' special case to allow it to be made absoluteSimon McVittie2010-12-25
|
* checkconfig: don't warn if $config{url} is undefSimon McVittie2010-12-25
| | | | | The warning was "Use of uninitialized value $IkiWiki::config{"url"} in length" when running a modified t/tag.t.
* Enable HTML::Template's parent_global_vars option.intrigeri2010-12-22
| | | | | Else setting parameters that do not appear in the template (such as title_overridden) fails horribly.
* second parameter of urlto is optionalJoey Hess2010-11-29
|
* Merge remote branch 'smcv/ready/localurl'Joey Hess2010-11-29
|\
| * If cgiurl is set, but url isn't, use an absolute $local_cgiurlSimon McVittie2010-11-23
| |
| * urlto(): if $from is undef, return a local path, not an absolute URLSimon McVittie2010-11-22
| |
| * baseurl(): return local path, not absolute URL, if the argument is undefSimon McVittie2010-11-22
| |
| * cgiurl(): return a locally-valid path by defaultSimon McVittie2010-11-22
| | | | | | | | | | | | To get an absolute version you can use cgiurl(cgiurl => $config{cgiurl}). The only place in IkiWiki that seems to actually need an absolute URL is the openid plugin, and that already uses the named parameter.
| * cgiurl: don't append "?" if there are no parametersSimon McVittie2010-11-22
| | | | | | | | | | This means we can use cgiurl() instead of $config{cgiurl} if an absolute URL isn't desired.
| * Compute local paths to the top of the wikiSimon McVittie2010-11-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | "local" here is short for "locally valid" - the idea is that we can use URLs that are relative in the sense of only having the path part, but absolute in the sense that they start from '/', such as '/~smcv/ikiwiki.cgi'. There's no particularly good name that I can find for these between-relative-and-absolute URLs. They're useful because in the common case where the pages and the CGI script have the same scheme and authority component, each page is identified by the same locally-valid URL when linking from any page or from the CGI, without hard-coding a choice between HTTP and HTTPS, or between multiple virtual hostnames with the same path layout. As such, we can use them in many situations that previously used an absolute URL. If there's no suitable semi-absolute value for local_url (for instance, if your pages and your CGI reside on different servers), we can just fall back to using the absolute URL. I append '/' because $config{url} doesn't end with '/', but the common case for local_url (on all branchable.com sites, for instance) is that it's just '/'.
* | Merge remote branch 'blipvert/fixes'Joey Hess2010-11-28
|\ \ | |/ |/|
| * check that user is defined before regexp compareCraig Lennox2010-11-28
| |
* | avoid an unnecessary hash lookupJoey Hess2010-11-20
| |
* | make use of precompiled regex objectsSimon McVittie2010-11-20
| |
* | glob2re: return a precompiled, anchored case-insensitive regexSimon McVittie2010-11-19
| | | | | | | | In practice every use of glob2re uses it like that.
* | match_glob: streamline glob cache slightlySimon McVittie2010-11-19
| |
* | Improve the speed of match_globKathryn Andersen2010-11-19
|/
* bugfixJoey Hess2010-10-23
|