Commit Graph

185 Commits (97a69be23663edfef828faa6f690f03db203e06b)

Author SHA1 Message Date
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
joey e589e24fad oops 2007-04-06 23:30:22 +00:00
joey 4de163b997 * Fix display of escaped wikilinks containing anchors. 2007-04-06 21:20:14 +00:00
joey 83618add81 * Fix a bug that caused link(foo) to succeed if page foo did not exist. 2007-04-04 20:57:13 +00:00
joey 02b9f69ba5 * Finally apply the index.html patch, with thanks to everyone who worked
on and supported creating it (especially Tumov). This adds a "usedirs"
  option that makes ikiwiki use foo/index.html instead of foo.html as
  output page names. It is not yet enabled by default.
2007-04-01 19:59:42 +00:00
joey a2cfdaaec5 * Hide excess backlinks and expand using CSS trick; control quantiy via
the numbacklinks setting.
2007-03-31 08:48:10 +00:00
joey bbb0b3e72f * Finally fixed the longstanding inline removal bug.
* Renamed %oldpagemtime to a more accurately named %pagemtime and fix it to
  actually store pages' mtimes.
* Add "mtime" sort parameter to inline plugin.
2007-03-24 15:10:58 +00:00
joey 2a0d91af2f * Fix link() PageSpecs to not just look at the raw link text, but at where
that given link points based on the page doing the linking. Note that this
  could make such PageSpecs match different things than before, if you
  relied on the old behavior of them only matching the raw link text.
* This required changing the match_* interface, adding a third parameter.
* Allow link() PageSpecs to match relative, as is allowed with globs.a
* Add postform option to inline plugin.
* Add an bug tracker to the softwaresite example.
2007-03-21 23:11:09 +00:00
joey e5ddd9b581 * Fix a bug with inlined create page links, including Discussion links on
blog post pages. The links will now create pages relative to the page that
  actually contains the link.
2007-03-11 04:59:03 +00:00
joey 1465676082 need to use uri_escape_utf8 2007-03-08 06:25:20 +00:00
joey c1b698e418 * The underscore escaping support exposed a bug in edit links: Such links
were titlepage escaped in the urls, and then doubly escaped by the CGI
  when editing. To fix this, I removed the titlepage escaping in the edit
  urls.
* That means that *every edit link* on the wiki is potentially changed.
  Rebuilding wikis on upgrade to this version therefore necessary; enabled
  that in postinst.
2007-03-08 06:03:59 +00:00
joey 16ab4ba2df remove debugging 2007-03-07 09:49:38 +00:00
joey b365d864c5 My fix to support encoded underscores in page titles broke links to pages
with underscores in their filenames, since the link code also used
titlepage. Create a new linkpage function and have the link code use that
instead.
2007-03-07 09:48:59 +00:00
joey 1202b4fd7b * Add preview parameter to preprocesser calls, use this rather than the
previous ugly hack used to avoid writing rss feeds in previews.
* Fix the img plugin to avoid overwriting images in previews. Instead it
  does all the work to make sure the resizing works, and dummys up a resized
  image using width and height attributes.
* Also fixes img preview display, the links were wrong in preview before.
2007-03-06 22:37:05 +00:00
joey 7562417578 fix precidence problem, thanks bod 2007-03-03 00:46:21 +00:00
joey 3660b1c7a1 * Allow for underscores to appear in page titles, if encoded appropriately
(__95__) in filenames. Previously, all underscores were replaced with
  spaces. Thanks, Enrico Zini for noticing that bug.
2007-03-02 00:37:22 +00:00
joey 67bc7ca8a1 doh! 2007-02-21 09:12:20 +00:00
joey c60477228c * Since the CGI had to drop the wiki lock to avoid deadlocking the
commit hook, it was possible for one CGI to race another one and "win"
  the commit of both their files. This race has been fixed by adding a new
  commitlock, which when locked by the CGI, disables the commit hook
  (except for commit mails). The CGI then takes care of the updates the
  commit hook would have done.
2007-02-21 08:55:28 +00:00
joey 135e5fc63a * perl is broken: print "" || die fails! Work around this insanity. 2007-02-20 22:19:28 +00:00
joey fa52a730ff * Changed calling convention for httmllink slightly. The first three
parameters remain the same, but additional options are now passed in using
  named parameters.
* Change plugin interface version to 1.02 to reflect this change.
* Add a new anchor option to htmllink. Thanks Ben for the idea.
* Support anchors in wikilinks.
* Add a "more" plugin based on one contributed by Ben to allow implementing
  those dreaded "Read more" links in blogs.
2007-02-20 03:05:47 +00:00
joey 1081aa1ee5 fix a bug 2007-02-20 01:49:52 +00:00
joey ecf37caff9 * Avoid potential syslog format string issue, although only older versions
of perl are vulnerable and it is not known to really be exploitable from
  ikiwiki.
2007-02-17 21:34:42 +00:00
joey cf2aabd6c8 foo 2007-02-15 05:39:49 +00:00
joey d4c61b7281 * Many changes to make ikiwiki very resistant to write failures
including out of disk space situations. ikiwiki should never leave
  truncated files, and if the error occurs during a web-based file edit,
  the user will be given an opportunity to retry.
  Inspired by the many ways Moin Moin destroys itself when out of disk. :-)
* Fix syslogging of errors.
2007-02-15 02:22:08 +00:00
joey 479c7a1ea6 * Allow plugins to add new types of tests that can be used in PageSpecs.
* Add a "conditional" plugin, which allows displaying text if a condition
  is true. It is enabled by default so conditional can be used in the
  basewiki.
* Use conditionals in the template for plugins, so that plugin pages
  say if they're currently enabled or not, and in various other places
  in the wiki.
2007-02-12 02:44:47 +00:00
joey d472e293cd fixes and more tests 2007-02-07 00:45:00 +00:00
joey 28e3bd2db2 edito 2007-02-07 00:27:10 +00:00
joey 58141a0ebc * Patch based on a patch from Ethan to support relative matching in
PageSpecs, by using "./". pagespec_match() has grown a new third parameter
  to support this.
2007-02-06 21:17:25 +00:00
joey 97aea86162 code checking for locked pages into a new "lockedit" plugin. Both are
* Avoid using lots of memory when copying large non-html files.
  Yes, you can keep videos in the wiki..
2007-02-03 03:27:33 +00:00
joey 5f162cfd34 * Add canedit hook, allowing arbitrary controls over when a page can be
edited.
* Move code forcing signing before edit to a new "signinedit" plugin, and
  code checking for locked pages into a new "lockedit" plugin. Both are 
  enabled by default.
* Remove the anonok config setting. This is now implemented by a new
  "anonok" plugin. Anyone with a wiki allowing anonymous edits should
  change their configs to enable this new plugin.
* Add an opendiscussion plugin that allows anonymous users to edit
  discussion pages, on a wiki that is otherwise wouldn't allow it.
* Lots of CGI code reorg and cleanup.
2007-02-02 02:33:03 +00:00
joey ab71299293 * More gettext fun. 2007-01-28 02:24:43 +00:00
joey 350a063896 reorg 2007-01-28 00:35:32 +00:00
joey 72dbbe3a2c * Make gitorigin_branch and gitmaster_branch configurable via the setup
file. Closes: #408599
2007-01-27 23:56:17 +00:00
joey 04cde27a0e * Gettext 1.04 or up is needed for the OO interface that ikiwiki needs,
if an older version is installed, just don't gettext strings, instead of
  crashing.
2007-01-16 03:37:39 +00:00
joey 8c8ce06a1b * Search in default location for templates as a fallback when templatedir is
pointed elsewhere, so that only modified templates need to be copied into
  a templatedir. Based on work by JeremyReed.
2007-01-12 20:48:19 +00:00
joey 92e26031ee * Fix encoding issue with use of Locale::Gettext. Seems that the OO
interface returns proper utf-8 decoded strings, unlike the traditional
  interface, so use the OO interface.
2007-01-11 23:29:22 +00:00
joey b31dc8d994 * Fix --locale to control LC_ALL now. 2007-01-10 20:25:00 +00:00
joey 8daaa11baa added some comments for translators 2007-01-04 12:00:23 +00:00
joey 137a87afd5 userdir fixes 2006-12-29 05:58:33 +00:00
joey f62d23f008 * If a userdir is configured, links to pages in it can be made without
specifying the path. This allows for easy signing of comments by linking
  to your page in the userdir.
2006-12-29 05:33:20 +00:00
joey b5e2afa943 * Allow disabling of plugins included in goodstuff. 2006-12-29 04:49:55 +00:00
joey 912521ef07 * Initial work on internationalization of the program code. po/ikiwiki.pot
is available for translation.
* Export gettext() from IkiWiki module.
2006-12-29 04:38:40 +00:00
joey f4e3e47e12 * Ikiwiki used to use svn as its RCS by default unless configured otherwise,
now it defaults to using no RCS unless configured to do so.
2006-12-23 06:55:18 +00:00
joey 201d11da0a the problem with coding while drunk -- idiotic mistakes 2006-12-23 06:48:56 +00:00
joey 829e0b1b65 * Avoid creating edit links when not in cgi mode.
* Avoid displaying discussion links at all, if there's not a discussion
  page, when not in cgi mode.
2006-12-23 06:18:55 +00:00
joey 2476447a5b changed my mind about how to disambiguate links, it seems to make more
sense to start them with a /
2006-12-21 22:15:11 +00:00
joey 31d0021e9c * Add support for links of the form [[../foo]], this links to the page
* Fix code to make absolute urls for rss feeds, was missing some urls.
* Fix double-escaping of html entities in titles etc in rss feeds
  that occured if escaped characters were present in the page filename.
2006-12-21 21:52:06 +00:00
joey ff6941cef9 * Add support for links of the form [../foo]], this links to the page
foo a level higher in the directory hierarchy than the one it would link
  to by default.
2006-12-21 20:11:18 +00:00
joey 472dabbb60 * Turn $config{wiki_file_prune_regexps} into an array that is easier to
manipulate.
* Only exclude rss and atom files from processing if the inline plugin
  is enabled and that feed type is enabled. Else it's just a copyable file
  type.
* Move rss and atom option handling code into the inline plugin.
* Applied a rather old patch from Recai to fix the "pruning is too strict"
  issue. Now you can have wiki source directories inside dotdirs and the
  like, if you want.
2006-12-21 19:36:15 +00:00
joey 389ad222ec * Add userdir config setting. 2006-12-19 16:58:55 +00:00
joey e1604375da note fixed bug 2006-12-07 04:56:06 +00:00
joey c861b8cae9 update 2006-11-28 08:56:11 +00:00
joey a405b46c3b * Add toggle plugin.
* Introduce the nicebundle. This is a kind of plugin, that just enables
  many other plugins. It's an easy way to boost ikiwiki from its default,
  basic wiki, to a full-featured wiki, without manually picking the right
  set of plugins. New plugins will be added to the nicebundle from time to
  time.
2006-11-22 02:28:42 +00:00
joey 3e593eb9c0 * Add "last" parameter to hook function. Very basic ordering, and hopefully
nothing more spohisticated will be needed.
* Add formbuilder_setup and formbuilder hooks.
* Split out a passwordauth module, that holds all the traditional password
  based authentication etc code. It's enabled by default, but can be disabled
  if you want only openid or some other auth method.
2006-11-20 20:37:27 +00:00
joey b236b1a4ff fix regexp 2006-11-20 06:44:08 +00:00
joey e7ee388ea1 minor improvements 2006-11-20 06:22:19 +00:00
joey 702b8721d3 * Add an openid plugin to support logging in using OpenID.
* Web commits by OpenID users will record the full OpenID url for the user,
  but in recentchanges, these urls will be converted to a simplified display
  form+link.
* Modified svn, git, tla backends to recognise such web commits.
2006-11-20 02:46:58 +00:00
joey 35ee7e44a6 * Make sure to check for errors from every eval. 2006-11-08 21:03:33 +00:00
joey 5a82103526 * Implemented expiry options for aggregate plugin.
* Use precalculated backlinks info when determining if files need an update
  due to a page they link to being added/removed. Mostly significant if
  there are lots of pages.
* Remove duplicate link info when saving index. In some cases it could
  pile up rather badly. (Probably not the best way to deal with this
  problem.)
2006-11-01 05:41:37 +00:00
joey 438676af37 fold 2006-10-29 00:24:18 +00:00
joey db3b72c482 instead of over and over. Typical speedup is ~4x. Max possible speedup:
8x.
* Add "scan" parameter to hook(), which is used to make the hook be called
  during the scanning pass, as well as the render pass. The meta and tag
  plugins need to use the new scan parameter, so will any others that modify
  %links.
* Now that links are calculated in a separate pass, it can also 
  precalculate backlinks in one pass, which is O(N^2) instead of the
  previous code that was O(N^3). A very nice speedup for wikis with lots
  (thousands) of pages.
2006-10-28 05:07:56 +00:00
joey b02bbe8253 * Fix a subtle bug in will_render that broke some builds, by only clearing
items from renderedfiles the first time per build.
2006-10-16 18:51:13 +00:00
joey b973ed8269 * Add no_override parameter to hook().
* Add a shortcut plugin, inspired by Victor Moral's contributed shortcuts 
  plugin, but featuring a more ikiwiki-ish syntax and with shortcuts that
  can be configured using a page in wiki.
2006-10-15 19:33:52 +00:00
joey 8f4878d8ae export will_render 2006-10-13 18:28:37 +00:00
joey be55f6fd7c * Atom feed support based on a patch by Clint Adams.
* Add feeds=no option to inline preprocessor directive to turn off all types
  of feeds. feeds=rss will still work, and feeds=atom was also added, for
  fine control.
* $IkiWiki::version now holds the program version, and is accessible to
  plugins.
2006-10-08 23:57:37 +00:00
joey cefbe6210f * Change %renderedfiles to store an array of files rendered from a given
source file, to allow tracking of extra rendered files like rss feeds.
* Note that plugins that accessed this variable will need to be updated!
  The plugin interface has been increased to version 1.01 for this change.
* Add will_render function to the plugin interface, used to register that a
  page renders a destination file, and do some security checks.
* Use will_render in the inline and linkmap plugins.
* Previously but no longer rendered files will be cleaned up.
* You will need to rebuild your wiki on upgrade to this version.
2006-10-08 21:56:50 +00:00
joey 67b513e8c4 * Patch from Alec Berryman adding a http_auth config item that allows
using HTTP Authentication instead of ikiwiki's built in authentication.
  Useful for eg, large sites with their own previously existing user auth
  setup. Closes: #384534
2006-10-02 22:56:09 +00:00
joey 22ddd81dd2 * Numerous tla fixes from Clint. 2006-09-16 04:09:06 +00:00
joey 0f25ec8eb6 * pagetemplate hooks are now also called when generating cgi pages.
* Add a favicon plugin, which simply adds a link tag for an icon to each
  page (and cgis).
2006-09-16 00:52:26 +00:00
joey 96b395705a * Fix a baseurl problem in hyperestradier search results. 2006-09-15 03:15:34 +00:00
joey 80508e4e79 add displaytime 2006-09-11 02:44:05 +00:00
joey 1705e6246e updates 2006-09-10 02:55:42 +00:00
joey 9bae900242 * Add a module version number to IkiWiki, so you can "use IkiWiki '1.00'"
to declare which version of the interface your plugin needs.
2006-09-09 23:07:27 +00:00
joey dae0f48e91 * Work on firming up the plugin interface:
- Plugins should not need to load IkiWiki::Render to get commonly
    used functions, so moved some functions from there to IkiWiki.
  - Picked out the set of functions and variables that most plugins
    use, documented them, and made IkiWiki export them by default,
    like a proper perl module should.
  - Use the other functions at your own risk.
  - This is not quite complete, I still have to decide whether to
    export some other things.
* Changed all plugins included in ikiwiki to not use "IkiWiki::" when
  referring to stuff now exported by the IkiWiki module.
* Anyone with a third-party ikiwiki plugin is strongly enrouraged
  to make like changes to it and avoid use of non-exported symboles from
  "IkiWiki::".
* Link debian/changelog and debian/news to NEWS and CHANGELOG.
* Support hyperestradier version 1.4.2, which adds a new required phraseform
  setting.
2006-09-09 22:50:27 +00:00
joey 4ad7c9d625 * Patch from James Westby to add a --sslcookie switch, which forces
cookies to only be sent over ssl connections to avoid interception.
* Factor out the cgi header printing code into a new function.
* Fix preferences page on anonok wikis; still need to sign in to get
  to the preferences page.
2006-08-27 20:25:05 +00:00
joey f4d99ac1ca * Use DESTDIR and not PREFIX to specify installation prefix for packaging.
* Support running "perl Makefile.PL PREFIX=foo" to build ikiwiki to run
  from a different directory.
2006-08-25 02:12:43 +00:00
joey c9dbcd29e5 * Make pagespec merge code smarter about merging duplicate pagespecs. 2006-08-23 06:44:47 +00:00
joey 78b279c3d8 * Allow preprocessor directives to span multiple lines, both to make
long ones with lots of values easier to write, and to allow for ones with
  multi-line quoted values.
2006-08-23 03:25:40 +00:00
joey cf3021ef3f * Fixed a bug with previews of subpages having broken links to top-level
pages.
* Change how the stylesheet url is determined in the templates: Remove
  STYLEURL and add BASEURL to all templates (some already had it). This
  new more general variable can be used to link to other things (eg, images)
  from the template, as well as stylesheets.
2006-08-21 22:27:02 +00:00
joey cedb48765b * Add a tail fin^W^Wsidebar plugin by Tuomo Valkonen.
* If a page links to itself, mark up the link text in a span with
  class="selflink" so that it can be styled. I don't have a useful style
  defined for that though.
2006-08-18 00:24:22 +00:00
joey 24fcf2b97d * Add --syslog config option, to log to the syslog. 2006-08-16 21:17:49 +00:00
joey 4b36dee35a * The last release accidentially installed ikiwiki as ikiwiki.pl, now fixed.
* Add --version.
* Man page format fixups.
* Add a %pagecase which maps lower-case page names to the actual case
  used in the filename. Use this in bestlinks calculation instead of
  forcing the link to lowercase.
* Also use %pagecase in various other places that want to check if a page
  with a given name exists.
* This means that links to pages with mixed case names will now work,
  even if the link is in some other case mixture, and mixed case pages
  should be fully supported throughout ikiwiki.
* Recommend rebuilding wikis on upgrade to this version.
2006-08-13 02:03:43 +00:00
joey 2eff1c64ab * Set die_on_bad_params => 0 for all templates, to allow users to modify
them without annoyances.
* Suck in the page content when generating an inline archive page, to work
  around the meta plugin's lack of caching of title metadata across runs.
2006-08-12 16:36:35 +00:00
joey 7a05087f47 * Turn on HTML::Template loop_context_vars; not actually used in stock
templates but can be useful for things like making comma-delimited lists
  of tags or what have you.
2006-08-05 03:21:14 +00:00
joey d8819689b1 * Add xhtml files to the default prune regexp. 2006-08-04 02:35:54 +00:00
joey 5077165953 revert this, it seems wrong 2006-08-04 01:47:07 +00:00
joey c5919df5f3 * Make aggregator save permalinks and author name to pages as metadata.
* Add permalink and author support to meta plugin, affecting RSS feeds
  and blog pages.
* Change titlepage() to encode utf-8 alnum characters. This is necessary
  to avoid UTF-8 creeping into filenames in urls. (There are still
  some other ways that it can get in.)
2006-08-04 00:01:51 +00:00
joey 1253db7de2 * Added created_before and created_after PageSpec limits. 2006-08-03 16:55:52 +00:00
joey ee84ed3770 * Fix stupid bug in date matching, patch from Roland Mas. Closes: #381132
* Added many unit tests for pagespec_match.
2006-08-02 15:33:26 +00:00
joey 98f6f5e580 * Memoize pagespec translation, this speeds up a build of the ikiwiki tree
by 10% or so.
2006-08-02 03:39:19 +00:00
joey 3a95b4b132 stupid perl.. 2006-08-02 03:31:15 +00:00
joey 413ac79a99 backlink is just the reverse of link, so.. 2006-08-02 02:17:42 +00:00