Commit Graph

5831 Commits (9cc6d6e4b8a22a37bb2d364042d527ddd906142d)

Author SHA1 Message Date
Joey Hess 9cc6d6e4b8 on css suckitude 2008-03-21 15:41:41 -04:00
Joey Hess ca8852b434 external: Work around XML RPC's lack of support for null by passing a special sentinal value. 2008-03-21 15:12:15 -04:00
martin f. krafft 17dc5df1f5 Allow individual hook registration to override ID
The preprocessor hooks need to specify IDs different from the ID used to
initialise the proxy. Thus, the hook function now takes an optional id
keyword argument and uses the ID used during initialisation if none is
provided.

Signed-off-by: martin f. krafft <madduck@madduck.net>
2008-03-21 15:07:10 -04:00
martin f. krafft 86ec72c826 Refactor remote procedure calls in the proxy
Add an rpc() method to the proxy to allow users to call remote
procedures, and route the proxy's own import registration via this
function.

Also, implement convenience functions for the RPC calls exported in the
IkiWiki::XML::RPC namespace.

Signed-off-by: martin f. krafft <madduck@madduck.net>
2008-03-21 15:07:10 -04:00
martin f. krafft 33e3528cd9 Make proxy object available to hook functions
Hook functions now get the proxy object as first argument to be able to
use RPC via the proxy.

Signed-off-by: martin f. krafft <madduck@madduck.net>
2008-03-21 15:07:10 -04:00
martin f. krafft 5184b8abfc add last parameter to plugin registration
Signed-off-by: martin f. krafft <madduck@madduck.net>
2008-03-21 15:07:10 -04:00
martin f. krafft e3624de63c Allow external plugins to return no value
Instead of using the XML-RPC v2 extension <nil/>, which Perl's
XML::RPC::Parser does not (yet) support (Joey's patch is pending), we
agreed on a sentinel: {'null':''}, that is, a hash with a single key
"null" pointing to the empty string.

The Python proxy automatically converts None appropriately and raises an
exception if a hook function should, by weird coincidence, attempt to
return {'null':''}.

Signed-off-by: martin f. krafft <madduck@madduck.net>
2008-03-21 15:07:10 -04:00
Joey Hess 99fce0af0d Merge branch 'master' of ssh://git.ikiwiki.info/srv/git/ikiwiki.info 2008-03-21 14:53:41 -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 5e52e05fd2 web commit by http://jblevins.org/: Case-sensitivity of HTML::Scrubber 2008-03-21 13:58:25 -04:00
Joey Hess e3866fd94f fix transition call 2008-03-21 13:56:52 -04:00
Joey Hess f9aa09e2f6 moved to a tip 2008-03-21 13:56:31 -04:00
Joey Hess fbe5e9b144 add a tip about dealing with ikiwiki's binary state files 2008-03-21 13:52:50 -04:00
Joey Hess 82ecf0aa9d fix transitioning of page state 2008-03-21 13:22:47 -04:00
Joey Hess 6ba56392ce web commit by http://jblevins.org/: Fix links and sign 2008-03-21 11:40:33 -04:00
Joey Hess 7eebd3709b web commit by http://jblevins.org/: Request for comments about SVG and MathML whitelists 2008-03-21 11:19:00 -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 f030bce812 updates to support current version of Devel::Profile 2008-03-21 05:09:42 -04:00
Joey Hess 14b3e645a8 work around perl warning 2008-03-21 05:08:04 -04:00
Joey Hess 42b6a6178c delete inline data after it's used 2008-03-21 04:51:14 -04:00
Joey Hess f937c1fb80 crazy optimisation to work around slow markdown
Markdown is slow. Especially if it has to process an enormous page. The
most common enormous page is currently the recentchanges page, which gets
processed a lot, and contains very little actual markdown. Most of it is a
big <div>, which markdown skips ... slowly.

This is a rather sick optimisation to work around markdown's speed issues.
Now inline inserts a small, dummy div, allows markdown to quickly render
the actual page content, then replaces the dummy with the actual inlined
pages later.

Results: Rendering just a recentchanges page, with diffs included, dropped
from 4.5 seconds to 2.7 seconds on my laptop. Building the entire wiki
dropped from 46.6 seconds to 39.5 seconds.

(It would be better if inline were a *post*-processor directive.)
2008-03-21 04:48:26 -04:00
Joey Hess 0b9e849aba process smilies in a sanitize hook
I had to move it to sanitize so all the markup is htmlized, so it can scan
for <pre> and <code>.
2008-03-21 03:16:28 -04:00
Joey Hess cd6055a893 another fix
I'm suprised that the second m//g didn't seem to clobber @-, but I don't
want to rely on that, so preserve it beforehand.
2008-03-21 02:57:34 -04:00
Joey Hess 88b5a0ece5 various fixes and simplifications 2008-03-21 02:55:14 -04:00
Joey Hess be4e3ad587 typo 2008-03-21 02:43:56 -04:00
Joey Hess 44824dba1b smiley: Detect smileys inside pre and tags, and do not expand. 2008-03-21 02:43:20 -04:00
Joey Hess 628467125c Close meta tag for redir properly. 2008-03-21 00:24:06 -04:00
Joey Hess 80b402286c web commit by http://jblevins.org/: Oops 2008-03-20 23:06:41 -04:00
Joey Hess daf120c1c7 web commit by http://jblevins.org/: MathML+SVG whitelist 2008-03-20 22:53:26 -04:00
Joey Hess f1fb8eac6a web commit by http://brian.may.myopenid.com/: change.tmpl and BASEURL 2008-03-20 22:51:09 -04:00
Joey Hess da7aad08e3 web commit by http://jblevins.org/: A note about the toc plugin and headers in templates 2008-03-20 17:02:59 -04:00
Joey Hess 8e2f7ec70f web commit by http://jblevins.org/: Bug report update 2008-03-20 16:26:51 -04:00
Joey Hess d4554dd010 web commit by http://bremner.myopenid.com/ 2008-03-20 06:08:33 -04:00
Joey Hess 316bca78c9 moved to a different server 2008-03-19 23:07:13 -04:00
Joey Hess b86c40e220 Merge branch 'master' of ssh://git.kitenet.net/srv/git/ikiwiki.info 2008-03-19 23:00:21 -04:00
Joey Hess 8471c51355 web commit by http://joey.kitenet.net/ 2008-03-19 22:51:05 -04:00
Joey Hess c92e9b34ec Store userinfo in network byte order for easy portability. (Old files will be automatically converted.) 2008-03-19 22:46:51 -04:00
Joey Hess 127d97066b Time::Duration is no longer used, remove from docs and recommends. 2008-03-19 21:59:40 -04:00
Joey Hess 9f3788e2a2 optimisation, only load openid module when signing in
This makes the CGI about .2 seconds faster when editing pages etc.
2008-03-19 21:12:18 -04:00
Joey Hess d85c9660c5 fix setstate
Same fix as in d7f1292c31
2008-03-19 15:49:37 -04:00
Joey Hess 6eb3cf7e76 make setargv take an array
for consistentcy with getargv, which returns one
2008-03-19 15:49:00 -04:00
Joey Hess d7f1292c31 fix setvar
It was incorrectly setting the value to the number of items in @_, ie,
always 1.
2008-03-19 15:18:38 -04:00
Joey Hess d8c4ea783b Merge branch 'master' of ssh://git.kitenet.net/srv/git/ikiwiki.info 2008-03-19 15:15:30 -04:00
Joey Hess f003e97d10 getargv needs to return a list reference
xml rpc only allows functions to return a single value, no lists. So getargv
needs to return a list reference, which means that the caller will see an xml
rpc array.
2008-03-19 15:12:59 -04:00
Joey Hess 4f6728a685 web commit by http://jblevins.org/: Patch for unclosed refresh meta tag. 2008-03-19 15:00:15 -04:00
Joey Hess 8813a6d065 web commit by http://engla.myopenid.com/: oops, point my URL to my ikiwiki portion (frontpage is not ikiwiki). Also, tweak the website title 2008-03-19 10:13:08 -04:00
Joey Hess 45b6baff66 web commit by http://engla.myopenid.com/: changed my url since my university is pretty.. dumb 2008-03-19 10:11:41 -04:00