Simon McVittie
c886bea320
Split cgi_goto into a goto plugin
2009-01-31 23:01:10 +00:00
Simon McVittie
4e92548ebc
comments: delete cgi hook in favour of the global one
2009-01-31 14:49:12 +00:00
Joey Hess
5dd67723c1
typo
2009-01-26 20:33:55 -05:00
Joey Hess
42b3e13739
format moderation queue only at end, avoid O(N^3) bug
...
It was calling format hooks for each comment on the page.
When relativedate is enabled, that made it insert <script> tags
for each comment. And the browser loaded the same script over and over,
which was slow on its own. But that was nothing compared to running
the onload even over and over.. especially since the hook system
added a new call to the hook each time it loaded.
For a page with 10 comments, that caused the relativedate DOM parsing
code to run 1000 times, I think. Anyway, it was sloow. Now it runs once.
2009-01-25 22:30:28 -05:00
Joey Hess
9d4f396b13
add reject all marked defer checkbox
2009-01-25 22:25:45 -05:00
Joey Hess
4e21af7671
sort comment queue by time, newest first
2009-01-25 19:45:56 -05:00
Joey Hess
7a7e28c55f
add a button to prefs page for comment moderation
2009-01-25 19:04:45 -05:00
Joey Hess
9a5085e512
clean up comment preview
...
Remove actions from it, and avoid a broken title link.
2009-01-25 18:56:47 -05:00
Joey Hess
731fc9e7a2
comments: Add a moderation web interface.
2009-01-25 18:49:57 -05:00
Joey Hess
c154fa5d6c
comments: If comment content checks fail, store the comment (in .ikiwiki/comments_pending) for moderator review.
2009-01-25 15:42:13 -05:00
Joey Hess
e1ff06b634
fix uninitialized value warnings
...
I suspect these are only triggered by spammers.
2009-01-22 20:58:49 -05:00
Joey Hess
16c56af605
make postcomment() pagespecs work while in checkcontent
2009-01-16 21:58:05 -05:00
Joey Hess
f7b2cfcf50
checkcontent: New hook, can be used to implement arbitrary content filters, including spam filters.
2009-01-16 20:46:55 -05:00
Joey Hess
362a329556
remove xxx comment
...
IIRC I analised this and the code is right
2009-01-16 19:34:50 -05:00
Simon McVittie
79676ca445
comments: if the remove plugin is enabled, append a "Remove comment" link
2009-01-10 11:31:24 +00:00
Simon McVittie
d70b05971f
comments: only try to insert commentuser etc. into templates if the page contained [[!_comment]]
2009-01-10 11:29:56 +00:00
Joey Hess
551544663d
comments: Fix cache avoidance hack.
...
The ?updated needs to come before the #anchor or browsers will not follow
the anchor.
2009-01-07 11:12:32 -05:00
Joey Hess
0711c0c548
comments: Add cache avoidance.
...
This got lost when we added the jump-to-comment anchor.
2008-12-28 22:20:22 -05:00
Joey Hess
6f1539320b
Merge branch 'master' into next
2008-12-26 14:07:25 -05:00
Joey Hess
9db06329c9
comments: Deal with users entering unqualified or partial urls.
...
People seem to be able to expect to enter www.foo.com and get away with it.
The resulting my.wiki/www.foo.com link was not ideal.
To fix it, use URI::Heuristic to expand such things into a real url. It
even looks up hostnames in the DNS if necessary.
2008-12-26 14:07:19 -05:00
Joey Hess
678d467a40
finalise version 3.00 of the plugin api
2008-12-23 16:34:19 -05:00
Simon McVittie
d0d598e429
comments: substitute commentsurl and atomcommentsurl for use in feeds
2008-12-21 17:15:49 +00:00
Simon McVittie
95b3bbbf7c
comments: run pagetemplate hooks
...
This fixes the bug that comments are always said to be from an anonymous
user at an unknown IP address.
2008-12-21 15:08:14 +00:00
Simon McVittie
bc66a00b90
comments: linkify and preprocess preview with correct 'page' param
2008-12-21 15:07:36 +00:00
Joey Hess
c53a3a1d3e
avoid storing transient state in pagestate
...
None of the comment state needs to be stored through the a later run of
ikiwiki, so move it all from pagestate to a more transient storage.
This is assuming that we'll never want to add pagespecs to search against
the comment state. Pagespecs like author() are why the meta plugin does
store its meta data in pagestate -- the data can be needed later to match
against.
2008-12-20 20:55:38 -05:00
Simon McVittie
9e889c39ed
comments: Rename COMMENTURL to ADDCOMMENTURL to avoid confusion with COMMENTAUTHORURL
...
Also refactor page.tmpl to use if/else rather than unless/if.
2008-12-20 17:34:55 +00:00
Simon McVittie
8ed94c0a18
comments: pass COMMENTOPENID to templates
2008-12-20 17:34:55 +00:00
Simon McVittie
8a9f4e225f
comments: remove linkuser(), it's been integrated into preprocess() now
2008-12-20 17:34:55 +00:00
Simon McVittie
f4e69ed815
_comment directive: if the user looks like an OpenID, store that
2008-12-20 17:34:54 +00:00
Joey Hess
301733ba13
fix comment permalink to always point to comment parent page
2008-12-19 17:33:40 -05:00
Joey Hess
4bdeec4961
remove cruft
...
wtf does it do? absolutely nothing
2008-12-19 14:09:39 -05:00
Joey Hess
79a787a466
rename comments_form to editcomment
2008-12-19 14:07:22 -05:00
Joey Hess
ddabb010b2
rename comments_display to comment
2008-12-19 14:03:26 -05:00
Joey Hess
f7fc062a12
replace discussion links on pages with comments link
...
The thinking here is that having both a Discussion page and comments for
the same page is redundant, and certianly not what you want if you enable
comments for a page. At first I considered making configurable via pagespec
what pages got discussion links. But that would mean testing a new pagespec
for every page, and a redundant config setting to keep in sync. So intead,
take a lead from my previous change to make inlined pages have a comments
link, and change the discussion link at the top of regular pages to link to
their comments.
(Implementation is a bit optimised to avoid redundant pagespec checking.)
2008-12-19 13:55:41 -05:00
Joey Hess
7521dd6c75
jump to comment after posting
...
Jumping to the just posted comment was the imputus, but I killed a number
of birds here.
Added a INLINEPAGE template variable, which can be used to add anchors to
any inline template.
To keep that sufficiently general, it is the full page name, so the
comment anchors and links changed form.
Got rid of the FIXMEd hardcoded html anchor div.
More importantly, the anchor is now to the very top of the comment, not the
text below. So you can see the title, and how it attributes you.
Avoid changing the permalink of pages that are not really comments, but
happen to contain the _comment directive. I think that behavior was a bug,
though not a likely one to occur since _comment should only really be used
on comment pages.
2008-12-18 20:58:16 -05:00
Joey Hess
81165dd2e0
jump to comments anchor after post
...
Not ideal, it would be nicer to jump to the actual comment posted, but no
anchor is available.
2008-12-17 20:29:55 -05:00
Joey Hess
339bfbd44a
typo
2008-12-17 20:22:42 -05:00
Joey Hess
cd7ac8f72a
add Comments link when displaying a page inline
...
This link will supplant the usual Discussion link for pages
that have comments enabled.
2008-12-17 19:38:02 -05:00
Joey Hess
5feffc8b0b
fix test when comments_closed_pagespec is empty
2008-12-17 19:06:29 -05:00
Joey Hess
140c0bacba
change around comments pagespecs
...
I think it is clearer to have one pagespec that controls all pages with
comments, and a separate pagespec that can be used to close new comments on
a subset of those pages.
2008-12-17 18:50:04 -05:00
Joey Hess
9b837fd5ed
fix default values for config settings
...
defaults cannot be set in getsetup, do it in checkconfig to avoid
uninitialized value warnings.
2008-12-17 17:05:49 -05:00
Joey Hess
bb93fccf06
Coding style change: Remove explcit vim folding markers.
2008-12-17 15:22:16 -05:00
Joey Hess
985b229be6
checksessionexpiry: rework
...
This function as factored out was a bit confusing, I think this makes more
sense.
2008-12-17 14:26:08 -05:00
Joey Hess
15ec55eff5
elide unnecessary variables
2008-12-12 15:38:23 -05:00
Joey Hess
ef972a871b
remove fixme
...
sessioncgi hooks are always called with the wiki locked
2008-12-12 15:25:12 -05:00
Joey Hess
928f6938d2
fix redefinition of $author
2008-12-12 15:22:43 -05:00
Joey Hess
9557c7c890
move related code together
2008-12-12 15:19:01 -05:00
Joey Hess
f3735891ca
whitespace
2008-12-12 15:13:07 -05:00
Joey Hess
18eeb068a6
don't explicitly use inline
...
loadplugin("inline") should take care of that
2008-12-12 15:10:17 -05:00
Joey Hess
2a7849b838
avoid unnecessary variable
2008-12-12 15:08:06 -05:00
Joey Hess
0ced5995d5
get rid of the [postcomment] hack
...
I think that using a flag variable is sorta cleaner.
(This is untested.)
2008-12-12 15:05:26 -05:00
Joey Hess
38c92e63bb
move getsetup to usual place
2008-12-12 14:59:23 -05:00
Simon McVittie
1942fc3bd6
comments: Store dates in GMT and in ISO-8601
...
The [[!_comment]] directive is a serialization format, not something for
presentation to users, so we should use the least ambiguous possible
representation.
2008-12-12 11:02:41 +00:00
Simon McVittie
f2d5ead6af
comments: Change internal-use-only directive from [[!comment]] to [[!_comment]]
2008-12-11 21:23:55 +00:00
Simon McVittie
dd1fa13bce
comments: Use new feedfile, emptyfeeds options to inline
2008-12-11 21:19:50 +00:00
Simon McVittie
3560460eb6
comments: don't interpolate IP into anonymous user's "name"
...
If an admin wants the IP in the comment display template they can still
get it (the default template shows it).
2008-12-11 21:14:05 +00:00
Simon McVittie
1698364da0
comments: fix invocation of possibly_foolish_untaint
2008-12-11 21:14:05 +00:00
Simon McVittie
fbf145ca3f
comments: avoid warning if there's no subject
2008-12-11 21:14:05 +00:00
Simon McVittie
a5889912b3
comments: Optionally allow anonymous commenters to set their name/URL.
...
Also provide a way for the comment template to pick up the verified
username/IP.
2008-12-11 21:14:05 +00:00
Simon McVittie
0a69c7ed56
comments: Remove some dead code
2008-12-11 21:14:05 +00:00
Simon McVittie
44a7d77a30
comments: rename main field to "editcontent" consistent with editpage
...
This has the side-effect that Ikiwiki's default style.css gives the text
box 100% width.
2008-12-11 21:14:05 +00:00
Simon McVittie
edb69335f2
comments: instead of hard-coding mdwn, allow any supported page format
2008-12-11 21:14:05 +00:00
Simon McVittie
9af0f04df3
comments: Save comments as a file with one big [[!comment]] directive.
...
This delays all comment formatting until the last possible time, allows
us to set metadata without worrying that commenters may be able to evade
it, and means that changes to how a comment is saved can be handled
gracefully. It also gives us somewhere to put the commenter's username
or IP address for later reference.
2008-12-11 21:14:05 +00:00
Simon McVittie
6a986a8a0b
Remove dead code for preprocessing [[!comments]]
2008-12-11 21:14:05 +00:00
Simon McVittie
1d696aef2c
comments: Duplicate logic and CGI hook from recentchanges to link user pages correctly
2008-12-11 21:14:05 +00:00
Simon McVittie
f88870f102
Qualify name of formattime() correctly
2008-12-11 21:14:04 +00:00
Simon McVittie
80e84e32bf
Delay checking for session expiry til we actually post a comment
2008-12-11 21:14:04 +00:00
Simon McVittie
24bfc3fdc5
comments: record the time at which each comment was posted
2008-12-11 21:14:04 +00:00
Simon McVittie
e66e2c2a7e
comments: Use a checkconfig hook to get the default value of comments_pagename
2008-12-11 21:14:04 +00:00
Simon McVittie
4ff161ba0b
comments: render comments/commenturl in page.tmpl
2008-12-11 21:14:04 +00:00
Simon McVittie
49eabc676a
comments: use global config to decide whether commenting is allowed, and for name of page
...
Also:
* decide comment page name sooner
* set permalink on it
2008-12-11 21:14:04 +00:00
Simon McVittie
a9b0b3da5f
comments: use global configuration for allow_directives, commit, and pagename
2008-12-11 21:14:04 +00:00
Simon McVittie
d35a2bd2de
comments: Add some global configuration
2008-12-11 21:14:04 +00:00
Simon McVittie
4972baac4d
comments: make preprocess a no-op
2008-12-11 21:14:04 +00:00
Simon McVittie
c9bb8b03a4
comments: document what linkuser does
2008-12-11 21:14:03 +00:00
Simon McVittie
404792c618
comments: add a stub pagetemplate hook to show the comments
2008-12-11 21:14:03 +00:00
Simon McVittie
3abfc1d71c
comments: Use HTML entities to escape directives
2008-12-11 21:14:03 +00:00
Simon McVittie
430ac61f21
Embed comments into comments_embed.tmpl rather than concatenating in perl
2008-12-11 21:14:03 +00:00
Simon McVittie
286dbb0541
comments: use CGI module's checksessionexpiry
2008-12-11 21:14:03 +00:00
Simon McVittie
249ea2ed75
comments: remove allowhtml option, just switch it on all the time
...
Now that posts are individually sanitized, that should be safe.
2008-12-11 21:14:03 +00:00
Simon McVittie
4663f364bb
comments: load inline and mdwn lazily
2008-12-11 21:14:03 +00:00
Simon McVittie
9d92fd5eb0
comments: don't rely on mdwn getting loaded first
2008-12-11 21:14:03 +00:00
Simon McVittie
ebe140201e
comments: sanitize the body of each comment before posting it
...
This should ensure that users can't "break out" from the enclosing
<div>, making it impossible to forge comments (assuming htmlscrubber
is enabled, and so is either htmlbalance or htmltidy).
2008-12-11 21:14:03 +00:00
Simon McVittie
57e40b9ce5
Fix typo that led to comments being blanked
2008-12-11 21:14:02 +00:00
Simon McVittie
3d4aa065d6
postcomment: Rename plugin to comments, use *._comment files
...
The PageSpec is still called "postcomment" since that's what it means.
2008-12-11 21:14:02 +00:00