* Brion Vibber <brion(a)pobox.com> [Fri, 6 May 2011 16:34:20 -0700]:
On Fri, May 6, 2011 at 12:11 PM, Brion Vibber
<brion(a)pobox.com> wrote:
I'm having some trouble adapting the
RTELinker class, which adds
annotation
to some link & header structures and removes
the table of contents;
now that
> these base Linker functions have moved to static methods on the
Linker
class
(with a back-compatibility magic forward from
Skin instance methods)
there's
no way to replace them by passing in a custom
skin with overrides --
Parser
and friends call Linker directly so don't see
the custom code.
Some of them I can adapt existing hooks for, but I may need to add a
couple
more hooks.
This gets a little scarier-looking once it turns out that the core
Parser
class has a hojillion little patches on it that the extension depends
on,
which do much of the annotation & placeholder insertion. I should be
able to
refactor most of those into either hooks or more cleanly-factored
Parser
methods that can be subclassed more directly in
RTEParser; that'll
make
the
extension's integration job a lot easier on a stock 1.18.
Whee!
Well one thing's for sure -- I'm going to have spent a lot more time
looking
at the guts of the current parser before this is done. ;)
It's also definitely reminding me why I don't like our current parser
code.
;) But a lot of it can be made cleaner and more extensible I think
without
any behavior changes, which gets us a long way in the short term.
I've cloned it from
git://gitorious.org/mediawiki-wikia-rte/mediawiki-wikia-rte.git and I am
having huge troubles even getting it to run without fatal errors in
1.17. It seems to require Wikia custom classes and extensions
(WikiaSuperFactory, SASS, ThemeSettings- and more?) and also it accesses
properties of Oasis skin (while I have my own Vector-derived skin with
different name). I wonder should I spend some more days with it, or it's
not going anywhere. I am having troubles finding stable and wide-browser
supporting WYSIWYG editor for 1.17. FCKeditor worked with 1.15
(imperfect, but worked) but I already made quite enough of commits into
my customer's 1.17 installation so I don't want to delete everything and
start with 1.15 / 1.16 from scratch.. *sigh*
Dmitriy