Commit Graph

48 Commits (d494bbcb34addf068e4ed830b57d37f6ba8b8217)

Author SHA1 Message Date
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 250bd850e2 support %destsources 2007-04-14 20:41:43 +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 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 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 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 897ec7cb79 add test 2007-02-20 01:51:23 +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 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 7c7bbfc3a9 Add userdir testcases. This also fixes an undefined value. 2007-01-06 04:22:46 +00:00
joey 85566ff3a3 cgiurl now needs to be set to get edit links 2006-12-28 20:44:33 +00:00
joey 1cc030f96b git test suite 2006-11-26 20:10:09 +00:00
joey b20d4f6681 * Mercurial backend improvements, including --get-ctime support. 2006-11-26 20:01:43 +00:00
joey 06137b95d4 mercurial username setting patch 2006-11-26 19:55:46 +00:00
joey ffb2700043 * Add a test suite for the mercurial backend, contributed by Emanuele Aina.
* Add a test suite for the svn backend.
* Daemonize before sending RPC pings, since that can take a while
  and/or hang.
* Daemonize before sending commit mails, as that can also take a long
  time/hang if the mail server is unhappy.
* Factor out commit mail sending code into new function.
2006-11-21 17:47:53 +00:00
joey 5bc73d7fac * Rename ikiwiki.pl so MakeMaker doesn't see it, and install it.
* Add some code to the build system that tries to determine if the
  lib installation directory is in @INC. If it's not, munge ikiwiki
  to hardcode the path to the lib directory. This should allow installing
  ikiwiki in nonstandard locations, including home directories, by just
  setting PREFIX at build time.
* Fix nested examples directory in deb.
2006-11-20 22:12:43 +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 52e06ad51e improve diagnostics 2006-09-25 20:15:02 +00:00
joey c439d5a8ab add 2006-09-11 03:52:55 +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 4895955cea * Change htmlize, format, and sanitize hooks to use named parameters. 2006-08-28 18:17:59 +00:00
joey e16746a52f * Add toc (table of contents) plugin. 2006-08-28 07:40:20 +00:00
joey bcf135038a validate plugins/map 2006-08-18 22:57:20 +00:00
joey fcf3894e80 update 2006-08-13 02:08:42 +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 9dee2ec20e * Ship ikiwiki executable as ikiwiki.pl in source to avoid issues on
case-sensative filesystems like OSX.
2006-08-08 14:55:14 +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 fae3da7ce3 link and backlink pagespec tests 2006-08-02 04:52:35 +00:00
joey 895da646a8 complex test 2006-08-02 02:10:24 +00:00
joey 2794d7ef5a * Renamed GlobLists to PageSpecs.
* PageSpecs can now include nested parens, "and", and "or". This remains
  backwards compatible to the old GlobList format. It's implemented by
  treating the GlobList as a very limited microlanguage that is transformed
  to perl code that does the matching.
* The old GlobList format is deprecated, and I encourage users to switch to
  using the new PageSpec format. Compatability with the old format will be
  removed at some point, possibly by 2.0.
* Wiki rebuild needed on upgrade to this version due to PageSpec change.
* Add support for creation_month and creation_year to PageSpec.
  Closes: #380680
* Changes to index file encoding.
2006-08-02 00:14:31 +00:00
joey a0653933d3 * Add exclude option in setup files, works same as --exclude. 2006-07-28 17:48:24 +00:00
joey 6551c1e560 * Support htmlize plugins and make mdwn one such plugin, which is enabled by
default (of course!). Based on a patch by Faidon Liambotis.
2006-07-03 22:08:04 +00:00
joey ac7b1c32b1 * POSIX::strftime doesn't know about encodings and doesn't return a utf8
flagged string even if the locale causes it to generate utf8 output,
  so make sure to let perl know it should be handled as utf8. Also, 
  the optimised version used for standard time formats won't work if the
  user has changed locale, so drop it. Thanks, Faidon Liambotis.
* Fix re-encoding of the comments field to utf8 if a commit fails
  due to a conflict. Thanks, Faidon Liambotis.
* Let svn know that commits have utf8 commit messages. Thanks, Faidon
  Liambotis.
* Add insane double encode/decode to utf8 around call to markdown.
  This works around a truely strange bug, which is apparently a bug in
  perl, which I lack space to describe here (see t/crazy-badass-perl-bug.t)
2006-07-02 04:02:08 +00:00
joey a5fdf47147 FUCK UTF8 fuck fuck fuck!!!
(and perl)
2006-07-02 03:54:12 +00:00
joey bd1b505bc9 add a testcase for the weird markdown utf-8 crasher to make sure that
ikiwiki continues to work around it
2006-06-16 04:56:25 +00:00
joey 202c4d522f * -CSD does not affect modules, so readfile() was not using the utf-8 input
layer, which led to lots of problems; make it force read files as utf-8.
  Closes: #373203
* writefile() likewise needs to use the utf8 output layer.
* Remove the -CSD from ikiwiki's hashbang since it's useless to have it
  there.
* Revert some of the decode_utf8 changes in CGI.pm that seem unnecessary
  given the readfile fix.
* Add utf-8 testcases for readfile and htmlize.
2006-06-15 06:37:33 +00:00
joey 65d0aee407 * --getctime had bitrotted (well I only ever used it the once so far..),
* When inlining a page in another one, links from the inlined page are now
  expanded the same as they are when rendering the inlined page as a
  standalone page. So rather than being expanded from the POV of the
  inlining page, they are expanded from the POV of the inlined page.
  For example, a link from blog/foo to "bar" will now link to blog/bar
  if it exists. Previously this needed to be a link explicitly to 
  "blog/bar"; such links will also continue to work.
  (This was slightly complex to do as the link still has to be constructed
  relative to the inlining page.)
2006-05-26 16:11:53 +00:00
joey 282893be81 * Rebuilding on upgrade to this version is recommended.
* Add a html validity check to the test suite, using the wdg-html-validator,
  if available.
* Make the html valid when there is nothing in the actions list by adding an
  empty <li> to the end of it.
* Reordered some function call parameters for consistency.
2006-05-26 08:24:36 +00:00
joey 642f73a39f dirname, basename, bestlink, linkify, pagetitle, titlepage.
* Allow links of the form [[some page|page]], with whitespace in the link
  text.
2006-05-04 18:51:26 +00:00
joey e5ae4bbcf7 add a syntax check 2006-05-03 20:06:31 +00:00
joey 4ba45ec3fc add 2006-05-02 21:15:39 +00:00
joey 55cc22939f * Add unit tests for several core functions, including globlist_match,
dirname, basename, and bestlink.
  as plugins and work. (Well, in theory.)
2006-05-02 21:14:50 +00:00
joey 47cec07e44 ah, the joys of test-based development..
think I have smart glob list matching working ok
2006-05-02 15:22:49 +00:00
joey f9ce7a571d * Add a unit test for globlist_match(). 2006-05-02 07:03:52 +00:00