Commit Graph

276 Commits (8ad716d92c615864a5293b030afc6535e9d92b6f)

Author SHA1 Message Date
Joey Hess 7cd40ea4eb better approach for cgi upload disabling
Make it a config setting, this way subtle load order issues don't come into
play. (As much?)
2008-07-01 13:43:32 -04:00
Joey Hess 5e6a6b1086 append index.html to url generated by urlto("")
This special case crops up when generating the parentlink to the toplevel
index page. urlto("") had been generating a link to "./" (or "../" etc)
for that, which is fine, if the web server redirects that to the toplevel
index.html. It's less fine if there is no web server.

I actually ran into the problem first when using gopher. (Yes, yes, don't
laugh.. see upcoming tip.) But it also crops up when browsing local wiki
files.

Of course, the index.html is stripped back off if usedirs is enabled.
2008-06-15 15:04:26 -04:00
Joey Hess 1dddec0ba9 Pass a destpage parameter to the sanitize hook.
Because the search plugin needed it, also because it's one of the few
plugins that didn't already have it.

I also considered adding it to htmlize, but I really cannot imagine caring
what the destpage is when htmlizing. (I'll probably be poven wrong later.)
2008-06-04 01:24:23 -04:00
Joey Hess 1546b48b97 move indexing to sanitize hook
I think this will give better results overall.

I made %IkiWiki::preprocessing accessible and used it to avoid indexing
at unnecessary points.
2008-06-04 00:58:46 -04:00
Joey Hess 6725413516 Add rel=nofollow to edit links. This may prevent some spiders from pounding on the cgi following edit links. 2008-05-28 03:09:04 -04:00
Joey Hess 5efaed6de6 Avoid unsightly warning message when evaling broken pagespecs.
Also improve error message when a pagespec fails to parse.
2008-05-22 13:11:25 -04:00
Joey Hess 0438de905b ENV can be used in the setup file to override environment variable setting, such as TZ or PATH. 2008-05-15 18:20:52 -04:00
Joey Hess ec866f8370 Optimised file statting code when scanning for modified pages; cut the number of system calls in half. (Still room for improvement.) 2008-05-07 14:11:56 -04:00
Joey Hess a7b8069b9d avoid strange FreeBSD problem
<mxey> I have a weird problem with Ikiwiki on FreeBSD: When rendering this page <http://rafb.net/p/zmfROX86.html>, I get "ikiwiki.setup: Modification of a read-only value attempted at /usr/local/lib/perl5/site_perl/5.8.8/IkiWiki.pm line 1300.".

And converting the constructors to not operate on the parameters directly
but use lexical variables fixed it. Not sure exactly when this occurs.
2008-05-05 14:50:26 -04:00
Joey Hess b2dea99417 Fix ugly display when editing a page that has vanished.
srcfile now has an optional second parameter to avoid it throwing an error
if the source file does not exist.
2008-05-02 13:02:07 -04:00
Joey Hess 7d7f85bbb5 Correct a bug in pagespec matching, where a empty pagespec matched all pages.
This manifested as wikis with no locked pages treating them all as locked.
The bug was introduced in version 2.41.

Medium urgency upload due to above fix.
2008-04-24 13:49:15 -04:00
Joey Hess e1d456a86f Fix missing import of escapeHTML in userlink. (Scott Bronson) 2008-04-10 17:39:51 -04:00
Joey Hess f6bd81db15 Added a hardlink option in the setup file, useful if the source and dest are on the same filesystem and the wiki includes large media files, which would normally be copied, wasting time and space. 2008-03-29 21:02:47 -04:00
Joey Hess 5d9ed614db fix page source storing
This saves space, and stores the data under the right keys.
2008-03-21 14:42:59 -04:00
Joey Hess e3866fd94f fix transition call 2008-03-21 13:56:52 -04:00
Joey Hess 3479809f96 add transition code for indexdb 2008-03-21 09:37:52 -04:00
Joey Hess 213eb2e408 Changed to a binary index file, written using Storable, for speed
During refresh of a wiki with 800 files, loadindex was using more total
time than any other function, and saveindex was also in the top ten.
Rewriting them to use Storable makes them three times as fast.

0.7 seconds is saved on my laptop in profiling mode.
2008-03-21 09:07:44 -04:00
Joey Hess bf7360347e Precompile pagespecs, about 10% overall speedup
About 12% of ikiwiki runtime was spent in pagespec_match. It was evaling
the same pagespec code over and over again. This changes pagespec_translate
to return memoized, precompiled functions that can be called to match against
a given pagespec.

This also allows getting rid of the weird variable scoping trick that had
to be in effect for pagespec_translate to be called -- the variables are
now just fed into the function it returns.

On my laptop, this drops build time for the docwiki from about 60 to 50
seconds.
2008-03-21 06:36:07 -04:00
Joey Hess f40fec811d improve comment 2008-03-21 05:59:33 -04:00
Joey Hess 8a29361c32 * Detect invalid pagespecs and do not merge them in add_depends,
as that can result in a broken merged pagespec that matches nothing.
2008-03-17 14:04:59 -04:00
Joey Hess 52d9f8e9f3 * Correct bug in encoding of %pagestate keys, fixes edittemplate. 2008-03-17 13:08:16 -04:00
Joey Hess 736fa378c5 typo 2008-02-24 15:58:20 -05:00
Joey Hess 4763514861 * Add the linkify and scan hooks. These hooks can be used to implement
custom, first-class types of wikilinks.
* Move standard wikilink implementation to a new wikilink plugin, which
  will of course be enabled by default.
2008-02-11 22:48:27 -05:00
Josh Triplett fb82474be0 Tighten page name regex to not allow carriage returns or line feeds 2008-02-09 22:53:28 -08:00
Josh Triplett 1bcfef8be8 Allow whitespace in page names.
Spaces in page names map to underscores in file names.  Newlines and
tabs follow ikiwiki's usual filename escaping rules: __10__ and __9__.
2008-02-06 20:02:25 -08:00
Joey Hess f92505d78b Merge branch 'master' into prefix-directives 2008-02-05 15:59:42 -05:00
Joey Hess bf522a347f * inline: Add new `allowrss` and `allowatom` config options. These can be
used if you want a wiki that doesn't default to generating rss or atom
  feeds, but that does allow them to be turned on for specific blogs.
2008-02-04 18:36:50 -05:00
Joey Hess 09187f83bc clear %pagestate in loadindex
This is to handle the case where loadindex is called multiple times in one run,
as when aggregating.
2008-02-03 03:25:47 -05:00
Joey Hess 870adf3bbf move openiduser function to the openid plugin 2008-01-30 02:39:17 -05:00
Joey Hess 64a8c828b8 * meta: Add pagespec functions to match against title, author, authorurl,
license, and copyright. This can be used to create custom RecentChanges.
* meta: To support the pagespec functions, metadata about pages has to be
  retained as pagestate.
* Fix encoding bug when pagestate values contained spaces.
2008-01-29 17:16:51 -05:00
Joey Hess 47ee266163 improve support for internal pages
This makes it a lot quicker to deal with lots of recentchanges pages
appearing and disappearing. It avoids needing to clutter up pagespecs with
exclusions for those pages, by making normal pagespecs not match them.
2008-01-29 15:05:49 -05:00
Joey Hess 21f44880cd non-tabular recentchanges display
Doesn't look as good as the old table, but works as a rss feed.
2008-01-29 01:48:55 -05:00
Joey Hess d7fdd04b5a * Removed support for sending commit notification mails. Along with it went
the svnrepo and notify settings, though both will be ignored if left in
  setup files.
2008-01-29 00:36:58 -05:00
Joey Hess 1b8f1b867c only linkify openids in userlink
Can't use htmllink in userlink due to it being called from recentchanges
in cases where there is no configured url. It seems easist, at least for now,
to not linkify user names in this case. I don't think I've ever clicked on such
a link anyway.

Might revisit this later.
2008-01-28 23:32:36 -05:00
Joey Hess 29f3082772 move userlink to IkiWiki.pm
I have a plugin that needs to use userlink.
2008-01-28 22:58:31 -05:00
Josh Triplett 1b03a06c8c Add new preprocessor directive syntax¸ using a '!' prefix.
Add a prefix_directives option to the setup file to turn this syntax
on; currently defaults to false, for backward compatibility.  Support
optional '!' prefix even with prefix_directives off, and use that in
the underlay to support either setting of prefix_directives.  Add NEWS
entry with migration information.
2008-01-27 16:14:38 -08:00
Joey Hess 14002b58d2 fix 2008-01-09 14:45:07 -05:00
Joey Hess e01960e90a not only markdown adds gunk, so remove it in the main htmlize function 2008-01-09 14:41:28 -05:00
Joey Hess 50faf0b151 Call preprocessor hooks in void context during the scan pass.
This allows the hook to determine if it's just scanning, and avoid expensive
operations.
2008-01-09 02:30:46 -05:00
Joey Hess dd0b844477 further improve the .. regexp 2007-12-17 13:53:51 -05:00
Joey Hess 90bce7d139 * Don't refuse to render files with ".." in their name. (Anchor the regexp.) 2007-12-17 13:37:19 -05:00
Joey Hess 214bc2b65b * Allow dashes in preprocessor directive commands, and shortcuts. 2007-12-12 16:13:15 -05:00
Joey Hess 58049e97c1 * Fix file pruning code to work if ikiwiki is run with "." as the srcdir. 2007-12-10 15:12:56 -05:00
Joey Hess ff97b0358b bug fix 2007-12-08 18:25:22 -05:00
Joey Hess 055179cb4c * Finally implemented a simple per-page data storage mechanism for plugins,
via the %pagestate hash.
* Use pagestate in meta to detect potential redir loops.
2007-12-08 17:40:50 -05:00
Joey Hess 91fe16f35c * Add umask configuration option. Closes: #443329 2007-11-27 16:46:02 -05:00
Joey Hess d00e8d78c8 * Don't consider links to anchors on the same page to be self links.
Patch by Daniel Burrows. Closes: #451729
* When usedirs is disabled, link direct to index.html files, not to
  directories, to improve browsing of file:// urls.
  Patch by Daniel Burrows. Closes: #451728
2007-11-17 19:58:17 -05:00
Joey Hess 3e17b7d612 need to remove trailing slashes in not one, but 2 places
htmllink needs to do it because it uses the basename of the link as the link
text

bestlink needs to do it because it is not always called from htmllink
2007-11-17 16:32:02 -05:00
Joey Hess 80d16f80bf * Allow trailing slashes after page names in wikilinks. 2007-11-17 16:26:34 -05:00
Joey Hess 264a82a435 * inline: Add timeformat parameter to control how the ctime of
inlined pages is displayed. Closes: #451019
2007-11-13 16:14:48 -05:00
joey 2d9ee11006 * Add a "createlink" class attribute to the span for wikilinks pointing
to not-yet-existing pages. I don't have a useful style defined for that
  though.
2007-10-13 23:08:38 +00:00
joey 3945473f8a clear hashes in loadindex, so that it can safely be called more than once
even if pages have been deleted in between
2007-10-10 18:46:25 +00:00
joey b86f9b8409 * Don't allow whitespace in link text in a wikilink. This was still
allowed by the regexp in one case though not documented to work, and
  was ambiguous with preprocessor directives.
2007-09-24 16:50:49 +00:00
joey 4ccb9be7c6 improve diagnostics 2007-09-22 18:10:40 +00:00
joey 7bde880fa8 * map: Render pages on the way to subpages whose parent pages
are not included in the map. Include special styling for such pages.
* map: Remove common prefixes and don't over-indent.
* Add class option to htmllink().
2007-09-22 16:32:24 +00:00
joey 8489e68916 * table: Text::CSV doesn't return decoded unicode (XS module); decode its
return values.
2007-09-05 17:22:26 +00:00
joey 99261148fe fix 2007-08-28 23:11:40 +00:00
joey 25294defb8 Don't allow newlines in link text in a wikilink. 2007-08-28 22:54:54 +00:00
joey 9c5f4761d8 * Support for looking in multiple directories for underlay files.
* Plugins can add new directories to the search path with the add_underlay
  function.
* Split out smiley underlay files into a separate underlay, so if the plugin
  isn't used, the wiki isn't bloated with all those files.
2007-08-28 01:59:01 +00:00
joey ab8125d62a * Fix a bug in unlockwiki intorduced last version that made it crash ikiwiki
if it wasn't locked when called. This is known to break post-commit
  emails.
2007-08-26 17:38:17 +00:00
joey 7946c67d1f * Avoid ugly gettext messages if LANG is empty. Closes: #439035 2007-08-21 21:19:53 +00:00
joey 7dd6385fdb fix undef issue 2007-08-21 19:51:05 +00:00
joey 9ff9ea55f7 fix libdir tainting 2007-08-21 16:47:01 +00:00
joey 50e1b43408 * Add monotone support, contributed by William Uther. 2007-08-21 03:10:35 +00:00
joey c5ad5c8276 * Various minor fixes and stylistic improvements suggested by Perl::Critic. 2007-08-15 08:08:32 +00:00
joey 69065b8e79 * Fix bug in deletion/move during edit code introduced in 1.44. Need to take
the underlaydir into account.
2007-08-14 19:44:59 +00:00
joey 922e6ec144 the perl critic reminded me that the library shouldn't be using IN and OUT
global file handles
2007-08-14 05:47:29 +00:00
joey b4dafe467b * Change yet again how unhandled and escaped preprocessor directives are
re-output onto the page. Hopefully I finally got it right..
2007-08-13 17:35:14 +00:00
joey 506bcbac04 * Fix --libdir to work at the command line.
* Plugins can now be written as standalone external programs, which can
  be written in any language that can do XML::RPC.
2007-08-13 03:07:31 +00:00
joey 7922a663c0 * Support pagespec "functions" with no parameters, like included() in the
conditional plugin.
2007-08-11 23:31:57 +00:00
joey 09b0a3b73f * Add rel=tag attribute to tag links, supporting that microformat, as well
as allowing them to be styled specially. Thanks, NicolasLimare.
2007-08-05 20:48:13 +00:00
joey 1e5cd11635 * Add a libdir config option to let ikiwiki load perl modules, including
plugins, from a user-configurable directory.
2007-07-27 00:48:06 +00:00
joey 1612dce6bb * Add a htmlext config option, this can be used to make ikiwiki generate
html files with a different extension.
2007-07-25 01:16:53 +00:00
joey 4936b3db88 * Correct some issues with escaped preprocessor directives. 2007-07-20 17:55:19 +00:00
joey afcf0dc79e * Patch fixing various additional problems with test suite. Closes: #425891
once more.
2007-06-26 22:11:59 +00:00
joey 3bfa109971 * Allow svnpath config option to contain additional extra slashes anywhere
w/o confusing ikiwiki.
* Rcs modules are now imported, so other modules that need similar
  normalisation of configs etc can do so.
2007-06-23 12:12:59 +00:00
joey aadb214220 * Fix wrapper generator and untaint code's handling of strings contining
newlines.
2007-06-03 16:24:22 +00:00
joey 78323806ee * Explode some of the more insane regexps. 2007-06-01 23:40:43 +00:00
joey 66cb6baf4e * Apply a patch from Carl Worth adding support for using globs in link()
in a PageSpec.
2007-05-30 19:54:08 +00:00
joey b4eaef94bd * Correct some issues with display of unhandled preprocessor directives. 2007-05-29 01:56:52 +00:00
joey 8c2c8c6bea * Deal better with rebuilds that involve moving files; track and clean up the
old files.
* Change where the img plugin puts scaled images. It's better to make the
  scaled images subpages of the page that embeds them, rather than putting
  them alongside the original image, since if two pages scale the same image
  the same way, this prevents complications in dealing with two pages
  creating the same file. The move will be handled transparently, though you
  might want to rebuild your wiki to make it occur in one step.
2007-05-24 19:56:08 +00:00
joey ee843c7523 improve messages 2007-05-21 03:00:45 +00:00
joey 82ac63d798 * Change the aggregate plugin's locking strategy. Now it defers loading state
until the wiki is building and already locked, unless it's aggregating.
  When aggregating, it does not wait for the lock if it cannot get it, and
  instead exits, to prevent aggregating processes from piling up.
2007-05-21 02:52:51 +00:00
joey cf35ee04cd * Add a destpage parameter to the filter hook.
* Fix links to smilies generated by the smiley plugin for inlined pages. The
  old links were often wrong, but often still worked by accident.
2007-05-17 19:55:11 +00:00
joshtriplett b8d7ae91d0 * Add an account-creation password as a simple anti-spam mechanism. If
set in the wiki setup, passwordauth will require the password in
  order to create an account.
2007-05-09 02:05:32 +00:00
joey 1e62e4f87f * Enable openid logins by default.
* Enable usedirs by default.
2007-04-29 22:54:14 +00:00
joey 89260fb39a folding 2007-04-27 18:55:20 +00:00
joey 1eee32c5b5 * Make pagespec_match return an object that can be stringified to tell
* Include wikiname in syslogged messages.
2007-04-27 17:48:11 +00:00
joey ed54f94ee7 minor improvements 2007-04-27 17:01:52 +00:00
joshtriplett bf006f771b * Fix bestlink to use pagecase for pages in userdir, to support pages
with non-lowercase filenames.
2007-04-27 09:11:14 +00:00
joey 8fa8bd0adb the kind of perl code that can only be written at 4:30 am
(Get a good message when a PageSpec fails due to a negated success by
creating success objects with a reason string, which morph into failure
objects when negated.)
2007-04-27 08:34:09 +00:00
joey f8a7fb227b * Make pagespec_match on failure return a value that is false, but in a
scalar context, evaluates to a reason why the match failed.
* Add testpagespec plugin, which might be useful to see why a pagespec isn't
  matching something.
2007-04-27 07:55:40 +00:00
joey ee1ad53c4c * pagespec_match() has changed to take named parameters, to better allow
for extended pagespecs. The old calling convention will still work for
  back-compat for now.
* The calling convention for functions in the IkiWiki::PageSpec namespace
  has changed so they are passed named parameters.
* Plugin interface version increased to 2.00 since I don't anticipate any
  more interface changes before 2.0.
2007-04-27 02:55:52 +00:00
joey fedaead1d0 * Add .dpkg-tmp to prune regexp, so that if ikiwiki is run right as it's
being upgraded by dpkg it will ignore dpkg temp files in the basewiki.
2007-04-15 18:10:39 +00:00
joey 40af2fc96c expost %destsources 2007-04-14 20:41:25 +00:00
joey fb802f8d2d * Apply patch from Ethan to improve an error message that should never
happen.
2007-04-14 20:07:03 +00:00
joey dd03d57678 * Internal version number and installdir substitutions were lost, fix. 2007-04-13 18:41:06 +00:00
joey 13c7a51f1f * Optimise displaytime, trimming maybe 6% off the build time. 2007-04-10 01:49:16 +00:00
joey 06b955b84a * Add a new %destsources hash, which maps between a destination file and
the source page used to create it, ie it's the reverse of %renderedfiles.
* Use %destsources in htmllink and urlto for 20-50% speedup.
2007-04-10 01:18:03 +00:00
joey 98994a4719 use err facility when logging errors to syslog 2007-04-09 23:09:43 +00:00