Commit Graph

907 Commits (a7b8069b9dd1921275ef24752a65005c15d0868e)

Author SHA1 Message Date
Joey Hess d93aaed791 * Add recentchangesdiff plugin that adds diffs to the recentchanges feeds.
* rcs_diff is a new function that rcs modules should implement.
* Implemented rcs_diff for git, svn, and tla (tla version untested).
  Mercurial and monotone still todo.
2008-03-03 15:53:34 -05:00
martin f. krafft c10cfb27d1 Add robots tag to meta plugin
Add special handling for <meta name="robots" ...> which needs not be
scrubbed as it's harmless.

Signed-off-by: martin f. krafft <madduck@madduck.net>
(cherry picked from commit b15d0299a7f7b147e89d8a202d6cca1c21491af2)
2008-03-02 18:04:09 -05:00
Adeodato Simó a8f08ab8e1 Make directives generated by shortcuts accept a `desc` parameter.
(cherry picked from commit 252da396bfa728b99af7c9bb304a7b5f3f6d94e6)
2008-03-02 18:04:09 -05:00
Adeodato Simó be0b4f603f Allow colons in URLs after the first slash
A new regexp fixes this bug:
http://ikiwiki.info/bugs/No_link_for_blog_items_when_filename_contains_a_colon/

I traced this down to htmlscrubber. If disabled,
it works. If enabled, then $safe_url_regexp
determines the URL unsafe because of the colon and
hence removes the src attribute.

Digging into this, I find that RFC 3986 pretty
much discourages colons in filenames:

"""
A path segment that contains a colon character
(e.g., "this:that") cannot be used as the first
segment of a relative-path reference, as it would
be mistaken for a scheme name. Such a segment must
be preceded by a dot-segment (e.g., "./this:that")
to make a relative- path reference.
"""

on the other hand, with usedirs, any link to
another page will be prepended by ../ anyway, so
that makes them okay again.

The solution still seems not to use colons.

In any case, htmlscrubber should get a new regexp,
courtesy of dato.

I have tested and verified this.

Signed-off-by: martin f. krafft <madduck@madduck.net>
2008-02-29 19:29:44 +01:00
Joey Hess f4773f6a83 avoid calling getctime on internal pages
internal pages won't be in revision control so this avoids some ugly noise
2008-02-24 18:02:34 -05:00
Joey Hess 4eabb3cb7a * inline: When forcing urls absolute for rss feeds, skip mailto and other
such urls.
2008-02-24 17:07:56 -05:00
Joey Hess bd55d276b3 Fix links generated by preprocessor directives when previewing.
As was already done for linkfication, links generated in a prevew page
are relative to the top of the wiki, so it has to be told that the destpage
is there.

I was using "" to indicate this, but that may confuse some preprocessor
plugins, which treat parameters with an empry value specially (sparkline is one
such). Instead, use "/", which is more accurate anyway and works just as well.
2008-02-24 16:37:11 -05:00
Joey Hess f7303db5a1 * Fix another preview will_render bug. This one involved inline,
which forced a scan of the page to make available metadata that
  appeared after the inline directive. Problem is that scan made it forget
  about any other files rendered due to the page. The scan also turns out
  to be unnecessary now, since meta persistently stores state and it's
  always available. So it was just removed.
2008-02-24 15:36:25 -05:00
Joey Hess a59af82bb8 * tla: Remove call to escapeHTML when constructing recentchanges message;
the html is escaped at a different level. Closes: #466495
* bzr, mercurial: Remove unused import of escapeHTML.
2008-02-20 16:45:02 -05:00
Joey Hess 1c06aed378 * monotone: Add code to default mergerc file to run
_MTN/ikiwiki-netsync-hook when a commit is merged in from the net.
2008-02-14 16:10:33 -05:00
Joey Hess 553136ec1f * Preview limits the page dropdown to what's selected previously
(as preserving the full list across preview would be tricky). Userdirs
  were still being offered as an option there, remove them.
* Fix a bug where user A created a page concurrently with user B, and
  when B previewed it would redirect B to A's new page, losing B's work.
  Instead, don't redirect and let conflict handling resolve it.
2008-02-14 15:42:14 -05:00
Joey Hess 8be2b60aac * The search plugin needs to override <base> to point to the directory
containing ikiwiki.cgi, but this should not change the urls to the style
  sheets etc. Add a new forcebareurl parameter to misctemplate to allow
  it to do that.
2008-02-14 15:20:49 -05:00
Joey Hess 1de1fb15a0 * camelcase: Convert to use new linkify and scan hooks rather than the old
hack.
2008-02-11 23:04:19 -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
Joey Hess 4aab5f0a73 * Generate XML RPC messages with the encoding set to utf-8 instead
of XML::RPC's default of us-ascii. Allows interoperation with
  python's xmlrpc library, which threw invalid encoding exceptions and
  caused the rst plugin to hang.
2008-02-11 00:11:49 -05:00
Joey Hess c6fc554c54 use quotemeta when building the regexp 2008-02-10 19:02:12 -05:00
Josh Triplett 728dfd9595 Allow the smb: URI scheme. 2008-02-10 15:08:56 -08:00
Josh Triplett 502cd00ec7 Allow the snews: URI scheme. 2008-02-10 15:05:11 -08:00
Josh Triplett ec9d3ab549 Do not allow the steam: URI scheme. 2008-02-10 14:59:08 -08:00
Josh Triplett 3cda22a27f Match literal '.' in URI schemas containing '.', rather than matching any character 2008-02-10 14:50:30 -08:00
Joey Hess bbcf878f75 * meta: Check that the urls provided for authorurl, permalink, and openid
are safe and can't contain javascript.
2008-02-10 17:17:44 -05:00
Joey Hess 4bfdbd4858 export $safe_url_regexp 2008-02-10 17:07:21 -05:00
Josh Triplett d20e24b636 Also filter the attributes cite, longdesc, and usemap, which can contain URIs 2008-02-10 13:59:37 -08:00
Joey Hess 2078f706d6 add parens around scheme regexp 2008-02-10 16:29:46 -05:00
Josh Triplett a7be7bdf56 Do not allow the about: URI scheme
Some browsers interpret about: URIs like a limited version of data:
URIs.  In particular, some versions of Internet Explorer interpret
arbitrary HTML content in about: URIs.
2008-02-10 13:23:28 -08:00
Joey Hess dfd6bb3854 fix data:image handling 2008-02-10 15:24:03 -05:00
Joey Hess d7e0c035e5 * htmlscrubber security fix: Block javascript in uris.
* Add htmlscrubber test suite.
2008-02-10 13:16:40 -05:00
Josh Triplett 122f6df325 Merge branch 'master' into prefix-directives
Conflicts:

	debian/changelog
	templates/change.tmpl
2008-02-09 23:02:52 -08:00
Joey Hess f1fcb5be9c * Page templates can now use CTIME to show when the page was created. 2008-02-09 23:05:48 -05:00
Joey Hess 63e316f362 * Don't die if running with --getctime and rcs_getctime throws an error.
There are several cases (recentchanges files, aggregated files)
  where some source files are not in revision control.
2008-02-07 22:11:54 -05:00
Joey Hess a4b2e77077 add support for prefix_directives 2008-02-05 16:14:38 -05:00
Joey Hess f64ef7deb6 proper fix for the preview/will_render issue 2008-02-04 18:46:34 -05:00
Joey Hess b37dc9c926 preview shouldn't show the feed buttons or post form 2008-02-04 18:44:54 -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 85de2f7bc4 the old code worked, suprisingly, but I prefer this form 2008-02-04 18:05:40 -05:00
Joey Hess d1c4899a22 * inline: When previewing, still call will_render on rss/atom files,
just avoid actually writing the files. This is necessary because ikiwiki
  saves state after a preview (in case it actually *did* write files),
  and if will_render isn't called its security checks will get upset
  when the page is saved. Thanks to Edward Betts for his help tracking this
  tricky bug down.
2008-02-04 17:58:23 -05:00
Joey Hess a3f224cb6c move saveindex call into preview block
This call is only present to handle the case where previewing a page
actually causes files to be rendered.
2008-02-03 19:51:00 -05:00
Joey Hess 408419ca3e remove another commit mail mention 2008-02-03 19:47:01 -05:00
Joey Hess 27d5f91a18 remove spurious EOF 2008-02-03 18:16:19 -05:00
Joey Hess 749c1e36d9 * monotone changes by Brian May:
- On commits, replace "mtn sync" bidirectional with "mtn push" single
    direction. No need to pull changes when doing a commit. mtn sync
    is still called in rcs_update.
  - Support for viewing differences via patches using viewmtn.
2008-02-03 18:14:39 -05:00
Joey Hess 9d54cc4659 implement aggregate_locking design
Now aggregation will not lock the wiki. Any changes made during aggregaton are
merged in with the changed state accumulated while aggregating. A separate
lock file prevents multiple concurrent aggregators. Garbage collection
of orphaned guids is much improved. loadstate() is only called once
per process, so tricky support for reloading wiki state is not needed.

(Tested fairly thuroughly.)
2008-02-03 16:48:26 -05:00
Joey Hess 38affb0c1c add aggregate locking functions 2008-02-03 15:17:15 -05:00
Joey Hess e57749b702 * recentchanges: Exipre all *._change pages, even if the directory
they're in has changed.
2008-02-03 14:51:03 -05:00
Joey Hess 340fe9707c * recentchanges: Improve handling of links on the very static changes pages
by thunking to the CGI, which can redirect to the page, or allow it to be
  created if it doesn't exist.
2008-02-03 14:48:20 -05:00
Joey Hess 42e5b8dfdc prototype fix 2008-02-03 14:22:25 -05:00
Joey Hess 1f6591f0a6 * aggregate: Revert use of forking to not save state, that was not the right
approach.
2008-02-03 03:04:19 -05:00
Joey Hess 9f60272831 * poll: This plugin turns out to have edited pages w/o doing any locking.
Oops. Convert it from a cgi to a sessioncgi hook, which will work
  much better.
2008-02-03 00:26:00 -05:00
Joey Hess 80915c830a * cgi hooks are now run before ikiwiki state is loaded.
* This allows locking the wiki before loading state, which avoids some
  tricky locking code when saving a web edit.
2008-02-03 00:23:04 -05:00
Joey Hess 0779013683 * aggregate: Forking a child broke the one state that mattered: Forcing
the aggregating page to be rebuilt. Fix this.
2008-02-02 23:56:13 -05:00
Joey Hess 6a7c3d1209 * Revert preservation of input file modification times in output files,
since this leads to too many problems with web caching, especially with
  inlined pages. Properly solving this would involve tracking every page
  that contributes to a page's content and using the youngest of them all,
  as well as special cases for things like the version plugin, and it's just
  too complex to do.
2008-02-02 23:40:57 -05:00
Joey Hess 870adf3bbf move openiduser function to the openid plugin 2008-01-30 02:39:17 -05:00
Joey Hess 55e16be44a move recentchanges link enabling into a pagetemplate hook 2008-01-30 02:29:12 -05:00
Jelmer Vernooij 246e93a300 Expand file-id in diffurl in the bzr backend. 2008-01-30 02:29:28 +01:00
Joey Hess 4284719464 rename bazaar -> bzr after discussion with jelmer 2008-01-29 19:48:30 -05:00
Joey Hess 381ac0f667 commit only the changed file 2008-01-29 19:44:26 -05:00
Joey Hess 274fb90026 stylistic changes
Remarkably few. Also, I removed the stub for the obsolete rcs_notify function.
2008-01-29 19:36:35 -05:00
Joey Hess cddc335b2b Merge git://git.samba.org/jelmer/ikiwiki 2008-01-29 19:28:51 -05:00
Joey Hess f584abec0c really fix the baseurl problem
the issue is that HTML::Template doesn't expand top-level variables when inside
a loop
2008-01-29 18:19:47 -05:00
Joey Hess 9e15bd27ea avoid temp var 2008-01-29 18:07:20 -05:00
Joey Hess 7125c7269a don't scan internal pages
scan() does too much. All that is needed is to preprocess the internal page
in scan-only mode.
2008-01-29 18:06:36 -05:00
Joey Hess 3803266b8f merged the recentchanges branch
misc fixes
2008-01-29 17:50:11 -05:00
Joey Hess 7a40bcab9a add missing test to avoid uninitialised value when a page with metadata is removed 2008-01-29 17:36:25 -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 bc49e284ac make the author metadata for changes pages be the un-munged openid 2008-01-29 16:05:31 -05:00
Joey Hess 9875bc10d1 avoid redundant recentpages action on the recentchanges page itself 2008-01-29 15:53:49 -05:00
Joey Hess 8b31c53366 added configuration for recentchanges
I kept it to a simple global configuration, rather than using the
preprocessor directive for recentchanges, because that had chicken and egg
problems and seemed overcomplicated. This should work reasonably well,
though it would be good to add some more metadata so that more customised
recentchanges pages can be made.
2008-01-29 15:51:32 -05:00
Joey Hess cabd5140c4 add code to delete old change pages 2008-01-29 15:22:23 -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 35bc35660c use new refresh hook 2008-01-29 13:08:48 -05:00
Joey Hess e1ce482e41 add refresh hook 2008-01-29 13:08:32 -05:00
Joey Hess a5ad70a8dc updates 2008-01-29 12:59:49 -05:00
Joey Hess 152f32547f indicate that an internal page will be rendered even if skipping it
This is important to do because until will_render is called, ikiwiki doesn't
know that the page exists. This avoids recentchanges re-writing every change
page every run.
2008-01-29 12:39:28 -05:00
Joey Hess 598d338b11 escape wikilinks and preprocessor directives 2008-01-29 12:37:39 -05:00
Joey Hess 7a4b7b1964 update RecentChanges action to point to page 2008-01-29 12:20:17 -05:00
Joey Hess 85eb1abc61 typo 2008-01-29 04:45:54 -05:00
Joey Hess 38e79f206e more style improvements 2008-01-29 04:44:05 -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 d2a3695376 some parameteraisation and generalisation 2008-01-29 01:03:15 -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 2ff726e875 don't render internal-use pages, and document them 2008-01-29 00:07:55 -05:00
Joey Hess 5921b86fcc proof of concept implementation of static recentchanges
Currently hardcoded to write to recentchanges/*, and the page format needs
to be rethought to be usable for aggregation, but it basically works.
2008-01-28 23:56:26 -05:00
Joey Hess 2d3dc86d07 * prettydate,ddate: Don't ignore time formats passed to displaytime
function.
2008-01-28 23:48:27 -05:00
Joey Hess 0d2894711c support for internal-use page types
If a page type starts with an underscore, hide it from the list of page types
in the edit form, and don't allow editing pages of that type. This allows
for plugins to add page types for internal use.
2008-01-28 23:08:48 -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
Joey Hess 9f25e3436b change rcs_recentchanges when to absolute, not relative, time
No point in using a relative time value in rcs_recentchanges. Different
consumers of the info want different things.
2008-01-28 22:57:22 -05:00
Joey Hess ad4f7bc075 remove debug message
This can legitimately happen when there's a simple merge.
2008-01-28 22:47:43 -05:00
Joey Hess 0f95adbd1d Merge branch 'master' into recentchanges 2008-01-28 21:24:15 -05:00
Joey Hess e30b96baba figured out how rev is used.. 2008-01-28 21:23:56 -05:00
Joey Hess 3436fed081 * inline: The template can check for FIRST and LAST, which will be
set for the first and last inlined page. Useful for templates that build
    tables and the like.
2008-01-28 21:22:04 -05:00
Joey Hess b11ddb88e6 add an id field to the rcs_recentchanges return structure
There was an undocumented field named "rev", I think "id" is a better name,
and nothing uses it yet.
2008-01-28 20:34:11 -05:00
Joey Hess 161947160b remove extraneous quoting 2008-01-28 18:01:51 -05:00
Joey Hess 84d3856512 test1 2008-01-28 17:41:02 -05:00
Joey Hess df32ad1139 really fix comment
It doesn't really make sense to do notification from a post-commit hook.
2008-01-28 17:36:36 -05:00
Joey Hess 52b16186c4 update comment
This is not only called from post-update in all configurations. Also, the
comment was innaccurate about what the post-update hook is passed.
2008-01-28 17:33:22 -05:00
Jelmer Vernooij d3f91f37ff Finish bazaar backend and make the remaining test pass. 2008-01-28 07:30:37 +01:00
Jelmer Vernooij 0be7aad67d Initial work adding support for Bazaar. 2008-01-28 06:16:56 +01:00
Josh Triplett fafb2edaa7 aggregate.pm: Replace Unicode apostrophe with ASCII to unbreak build
gettext choked on a Unicode apostrophe in the aggregate plugin, which
appeared in a new error message in commit
4f872b5633.  Replace it with an ASCII
apostrophe.
2008-01-26 23:12:29 -08:00
Joey Hess 4f872b5633 * aggregate: Fork a child process to handle the aggregation. This simplifies
the code, since that process can change internal state as needed, and
  it will automatically be cleaned up for the parent process, which proceeds
  to render the changes.
2008-01-24 17:22:39 -05:00
Brian Downing 6d85ccdb6f Add full parser for git diff-tree output
The -c option to git log/diff-tree produces "merged" diffs with a
different format from normal ones.  However, the existing diff-tree
parser only accepted non-merged diff lines.  Merged diff lines caused
the parser to get out of sync.  This patch adds a full parser for diffs
with any number of parents.  See the "DIFF FORMAT FOR MERGES" section in
the git-diff-tree man page for more information.

Signed-off-by: Brian Downing <bdowning@lavos.net>
2008-01-17 11:15:23 -05:00
Joey Hess ba6b8e5e3e * aggregate: Don't let feeds set creation times for pages in the future. 2008-01-16 02:01:00 -05:00