Commit Graph

540 Commits (b297f76f14471d7a6e1ad265357d7a788609c4c3)

Author SHA1 Message Date
Joey Hess 53d466a07f second parameter of urlto is optional 2010-11-29 14:59:48 -04:00
Joey Hess 0ae1e4cc0e Merge remote branch 'smcv/ready/localurl' 2010-11-29 14:43:57 -04:00
Joey Hess 93d77673e4 Merge remote branch 'blipvert/fixes' 2010-11-28 13:35:52 -04:00
Craig Lennox e4c6f5bcbe check that user is defined before regexp compare 2010-11-28 10:51:53 -05:00
Simon McVittie d01334b8e9 If cgiurl is set, but url isn't, use an absolute $local_cgiurl 2010-11-23 22:21:31 +00:00
Simon McVittie 4c224ae143 urlto(): if $from is undef, return a local path, not an absolute URL 2010-11-22 23:47:05 +00:00
Simon McVittie f032bce791 baseurl(): return local path, not absolute URL, if the argument is undef 2010-11-22 23:47:04 +00:00
Simon McVittie 6be4e6d1a5 cgiurl(): return a locally-valid path by default
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.
2010-11-22 23:47:04 +00:00
Simon McVittie 200c599dca cgiurl: don't append "?" if there are no parameters
This means we can use cgiurl() instead of $config{cgiurl} if an absolute
URL isn't desired.
2010-11-22 23:16:59 +00:00
Simon McVittie 8f64c69e08 Compute local paths to the top of the wiki
"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 '/'.
2010-11-22 23:13:52 +00:00
Joey Hess b3bca318ef avoid an unnecessary hash lookup 2010-11-20 12:25:52 -04:00
Simon McVittie 55515050e1 make use of precompiled regex objects 2010-11-20 00:02:49 +00:00
Simon McVittie 788105e2a7 glob2re: return a precompiled, anchored case-insensitive regex
In practice every use of glob2re uses it like that.
2010-11-19 23:59:04 +00:00
Simon McVittie 321bf7ec19 match_glob: streamline glob cache slightly 2010-11-19 23:46:46 +00:00
Kathryn Andersen ff0e244701 Improve the speed of match_glob 2010-11-19 23:46:46 +00:00
Joey Hess 0cc2a36f59 bugfix 2010-10-23 16:47:19 -04:00
Joey Hess 7e8064e9fa add a hint that creation_month takes a number, not a month name 2010-10-20 19:07:46 -04:00
Joey Hess 4a75dee651 avoid perl warning when passed bad non-numeric year/month/day 2010-10-20 18:52:46 -04:00
Joey Hess faf94b5787 refactor check_canchange into IkiWiki library 2010-10-08 18:09:28 -04:00
Joey Hess 84111d96c4 make revert hooks optional
I removed the IkiWiki::rcs_ stubs for the revert hooks. Instead
recentchanges tests to see if the hooks are available and calls
them directly.
2010-10-08 17:54:12 -04:00
Joey Hess 238e8b95a5 convert rcs_revert to only stage the reversion 2010-10-06 15:08:12 -04:00
Joey Hess 237ea79d71 remove rcs_showpatch 2010-10-06 14:39:10 -04:00
Joey Hess a29f169b1e indentation 2010-10-04 16:34:33 -04:00
Peter Gammie 8024a2636f Complete rcs_preprevert and lightly test. 2010-10-01 14:06:00 +10:00
Peter Gammie acecbad0ff First cut at the revert plugin. 2010-09-29 15:14:19 +10:00
Joey Hess e22b18aabc template_depends: throw nice error message when template cannot be found
plovs reported a crash when templates were not installed properly,
with a non-useful error about the template object not being defined.
I've audited all uses of template_depends(), and template(), and it makes
sense for them to throw an error if the template cannot be found. All code
with a user-supplied template catches errors already, to handle template
parse failures.

It did not make sense for template_file to throw errors, as some code uses
it to probe if a template file is available.
2010-09-27 15:58:01 -04:00
Joey Hess 2df0999e40 revert check_canedit nosubs thing
Abstraction violation. I now think the problem should be treated as a bug
in httpauth.
2010-08-30 18:31:56 -04:00
Joey Hess 8030ecac02 Receive: avoid hiding check_canedit error messages
Avoid the generic "you are not allowed to change" message,
and instead allow check_canedit to propigate out useful error messages.

Went back to calling check_canedit in fatal mode, but added a parameter to
avoid calling the troublesome subs that might cause a login attempt.
2010-08-30 17:58:00 -04:00
Joey Hess 991d01f5b5 optimise single dot detection
Since it already looks for things starting with a dot, I was able to avoid
matching against the string twice.

This also fixes a minor bug; $from may not be defined. Avoid uninitialized
value warnings in this case.
2010-08-30 13:36:00 -04:00
Giuseppe Bilotta c4d4cad3be Single dot in pagespec translates to 'current page' 2010-08-30 13:25:53 -04:00
Joey Hess 5d88146861 Fixes a bug that prevented matching deleted pages when using the page() PageSpec. 2010-08-04 08:25:10 -04:00
Joey Hess c401b6958a Add new disable hook, allowing plugins to perform cleanup after they have been disabled. 2010-07-26 16:33:42 -04:00
Joey Hess 1b0bef6d49 template: Fix dependency tracking. Broken in version 3.20100427.
template_depends was adding a dependency on the source filename,
instead of on the page name when a template is a page. Such a
dependency doesn't work.
2010-07-23 14:14:25 -04:00
Joey Hess b45688e34e Merge remote branch 'intrigeri/po' 2010-07-18 19:35:16 -04:00
Joey Hess eeb8e11d65 remove dead case 2010-07-18 17:47:36 -04:00
Joey Hess e674bb1445 fix other 2 cases of conflicting destdir files
Cleanly fixed case where destdir file failed to be written because there
was a directory with the same name. This can be detected with no extra
system calls, and dealt with by finding all pages that wrote files
inside the directory, and removing them and the directory.

The other, inverse case would be expensive to detect in will_render,
since it would need to check each parent directory of the file to see
if the directory is really a conflicting file. But prep_writefile
already does a similar scan for symlinks in the path, so I added code
there to remove the conflicting file. This fix assumes that the file
is written using writefile, and not some other means (but using other means
would be a security hole too, so hopefully nothing does).
2010-07-18 17:38:35 -04:00
Joey Hess 2bf3a6edbb check oldrenderedfiles too
Handles the case where foo.mdwn is moved too foo/index.html
2010-07-18 16:47:52 -04:00
Joey Hess 773db5a35e avoid error if two source files render the same destination file
There are two sub-caces. If both source files still exist, the winner that
renders the destination file is undefined. If one source file is deleted
and the other added, in a refresh, the new file will take over the
destination file.
2010-07-18 16:28:39 -04:00
intrigeri ff8f6cd6b2 Make the rationale clearer. 2010-07-11 11:35:37 +02:00
intrigeri 4a1cb092ba Revert po vs. template kludges.
This reverts commits dcd57dd5c9,
d4136aea8a and
d877b9644b.
2010-07-11 11:03:41 +02:00
intrigeri c99d26030e Merge remote branch 'upstream/master' into prv/po
Conflicts:
	IkiWiki/Plugin/po.pm
	doc/plugins/po.mdwn
2010-07-11 10:46:18 +02:00
Joey Hess 0eabe6f794 git: Added git_wrapper_background_command option. Can be used to eg, make the git wrapper push to github in the background after ikiwiki runs. 2010-07-01 16:57:20 -04:00
intrigeri dcd57dd5c9 Add a fullpage arg to filter.
Set it to true every time IkiWiki::filter is called on a full page's content.

This is a much nicer solution, for the po plugin, than previous whitelisting
using caller().
2010-06-29 15:17:56 +02:00
intrigeri 9f401d6617 Merge remote branch 'upstream/master' into prv/po
Conflicts:
	IkiWiki/Plugin/po.pm
2010-06-25 14:38:37 +02:00
Joey Hess ecdfd1b864 rcs_commit and rcs_commit_staged api changes
Using named parameters for these is overdue. Passing the session in a
parameter instead of passing username and IP separately will later allow
storing other session info, like username or part of the email.

Note that these functions are not part of the exported API,
and the prototype change will catch (most) skew, so I am not changing
API versions. Any third-party plugins that call them will need updated
though.
2010-06-23 19:04:36 -04:00
Joey Hess 17592a951b websetup: Allow enabling plugins listed in disable_plugins.
The bug here was that disabling a plugin included thru goodstuff, like
htmlscrubber, caused it to be added to disable_plugins, and those plugins
were never loaded, so could not be re-enabled. Fix by allowing them to be
force loaded when appropriate. (Also that allows disabled plugins to still
record their setup options when dumping a setup file.)
2010-06-13 10:21:19 -04:00
Joey Hess e96cf38ecc When editing a page, show that page's sidebar. (Thanks, privat) 2010-06-09 16:00:12 -04:00
Joey Hess cdf4292846 Fix support for globbing in tagged() pagespecs.
The linktype check was being done on the relativised link target,
but %typedlinks uses the same link targets as %links, so that didn't work.

I think the bug only appeared when tagbase was not set.

This bugfix also let me factor out the common typedlink checking code.
2010-06-09 14:39:17 -04:00
Joey Hess 1b6aa2276e creation_day() etc use local time, not gmtime.
To match calendars, which use local time. Particularly important at
the end of the month.

I checked the history, and there seemed no good rationalle for the
pagespecs to use gmtime.
2010-05-31 20:46:12 -04:00
Joey Hess 7aa209f1ce Fix a bug that prevented matching deleted comments, and so did not update pages that had contained them.
Problem is that by the time rendering calls render_dependent, %pagesources
has had deleted files removed from it. So match_comment's lookup of
files in there to see if they had the _comment extension failed.

I had to introduce a hash that temporarily holds filenames of deleted pages
to fix this.

Note that unlike comment(), internal() had avoided this pitfall by being
defined to match both internal and non-internal pages.
2010-05-18 13:32:28 -04:00